Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Правильная архитектура
 
 автор: sl1p   (02.03.2011 в 19:47)   письмо автору
 
 

Стала задача сделать мини-црм, на тему разных товаров.

Нужно хранить товары(их разновиднойстей около 10 штук), к примеру телевизор с характеристиками телевизора: диагональ и т.п., автомобиль (понятное дело не имеет диагонали)

Каким образом хранить эти данные?
Пока что мысли на разные таблицы, но это конечно же не правильно.

  Ответить  
 
 автор: neadekvat   (02.03.2011 в 20:20)   письмо автору
 
   для: sl1p   (02.03.2011 в 19:47)
 

Кажется, в таком случаи хорошо бы подошла какая-нибудь nosql база.

Но если именно реляционную.. Может, как-то так:
types - типы товаров (телевизор, автомобиль и т.д.)
type_id int ai
name varchar

items - товары
item_id int ai
type_id int - к какому типу относится товар
name varchar

parameters_list - параметры, которые могут иметь типы
parameter_id int ai
type_id int - указывает, к какому типу товаров относится параметр
name varchar

items_parameters - параметры конкретных товаров
item_id int - id товара
parameter_Id int - id параметра
value - значение параметра

  Ответить  
 
 автор: Красная_шляпа   (02.03.2011 в 20:57)   письмо автору
 
   для: neadekvat   (02.03.2011 в 20:20)
 

угу в файлах

  Ответить  
 
 автор: cheops   (02.03.2011 в 21:08)   письмо автору
 
   для: sl1p   (02.03.2011 в 19:47)
 

>Каким образом хранить эти данные?
>Пока что мысли на разные таблицы, но это конечно же не правильно.
Под имена характеристик отводите отдельную таблицу, связывайте её с таблицей значений, таблицу товаров через еще одну таблицу связывайте с таблицей характеристик, таблицу значений увязывайте также с таблицей товаров. В общем делайте что хотите, но все эти многочисленные характеристики должны быть в одной таблице (максимум, что допускается разнести целочисленные, строковые и перечисляемые типы по разным таблицам). По началу дико покажется, потом себе спасибо скажите, когда поиск по ним делать начнете.

  Ответить  
 
 автор: sl1p   (03.03.2011 в 15:09)   письмо автору
 
   для: cheops   (02.03.2011 в 21:08)
 

всем спасибо, так и сделал:)

  Ответить  
 
 автор: sl1p   (07.03.2011 в 19:45)   письмо автору
 
   для: cheops   (02.03.2011 в 21:08)
 

подскажите пожалуйста а как по такой структуре сортировать товары по свойствам?
Т.е. при сортировке нужно джойнить ещё таблицу свойств с айди свойства и по нему сортировать?..


И второй вопрос как правильно выводить записи?
В данный момент:

Выбираем все позиции товара и уже в цикле вывода выбираются из таблицы свойств соответственно свойства товара в текущей итерации цикла.
Правильно ли так?

  Ответить  
 
 автор: cheops   (07.03.2011 в 19:55)   письмо автору
 
   для: sl1p   (07.03.2011 в 19:45)
 

>Т.е. при сортировке нужно джойнить ещё таблицу свойств с айди свойства и по нему
>сортировать?..
Да совершенно верно.

>Выбираем все позиции товара и уже в цикле вывода выбираются из таблицы свойств
>соответственно свойства товара в текущей итерации цикла.
>Правильно ли так?
Если вам все-равно сортировать данные, то лучше и здесь воспользоваться многотабличным запросом.

  Ответить  
 
 автор: sl1p   (07.03.2011 в 20:56)   письмо автору
 
   для: cheops   (07.03.2011 в 19:55)
 

дык здесь получается так что:

когда выбираем товар, у него есть общие с другими товарами свойства, к примеру айди, когда добавлен, кем добавлен(поэтому нет необходимости их выносить за пределы таблицы товаров). Чтобы выбрать все его свойства мне кажется не получится просто джойнить таблицу, т.к. вопервых столбцы будут разные, и строк будет много.

получается, получим инфо о товаре + в каше его свойства.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования