|
|
|
| Стала задача сделать мини-црм, на тему разных товаров.
Нужно хранить товары(их разновиднойстей около 10 штук), к примеру телевизор с характеристиками телевизора: диагональ и т.п., автомобиль (понятное дело не имеет диагонали)
Каким образом хранить эти данные?
Пока что мысли на разные таблицы, но это конечно же не правильно. | |
|
|
|
|
|
|
|
для: 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 - значение параметра | |
|
|
|
|
|
|
|
для: neadekvat
(02.03.2011 в 20:20)
| | угу в файлах | |
|
|
|
|
|
|
|
для: sl1p
(02.03.2011 в 19:47)
| | >Каким образом хранить эти данные?
>Пока что мысли на разные таблицы, но это конечно же не правильно.
Под имена характеристик отводите отдельную таблицу, связывайте её с таблицей значений, таблицу товаров через еще одну таблицу связывайте с таблицей характеристик, таблицу значений увязывайте также с таблицей товаров. В общем делайте что хотите, но все эти многочисленные характеристики должны быть в одной таблице (максимум, что допускается разнести целочисленные, строковые и перечисляемые типы по разным таблицам). По началу дико покажется, потом себе спасибо скажите, когда поиск по ним делать начнете. | |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 21:08)
| | всем спасибо, так и сделал:) | |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 21:08)
| | подскажите пожалуйста а как по такой структуре сортировать товары по свойствам?
Т.е. при сортировке нужно джойнить ещё таблицу свойств с айди свойства и по нему сортировать?..
И второй вопрос как правильно выводить записи?
В данный момент:
Выбираем все позиции товара и уже в цикле вывода выбираются из таблицы свойств соответственно свойства товара в текущей итерации цикла.
Правильно ли так? | |
|
|
|
|
|
|
|
для: sl1p
(07.03.2011 в 19:45)
| | >Т.е. при сортировке нужно джойнить ещё таблицу свойств с айди свойства и по нему
>сортировать?..
Да совершенно верно.
>Выбираем все позиции товара и уже в цикле вывода выбираются из таблицы свойств
>соответственно свойства товара в текущей итерации цикла.
>Правильно ли так?
Если вам все-равно сортировать данные, то лучше и здесь воспользоваться многотабличным запросом. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2011 в 19:55)
| | дык здесь получается так что:
когда выбираем товар, у него есть общие с другими товарами свойства, к примеру айди, когда добавлен, кем добавлен(поэтому нет необходимости их выносить за пределы таблицы товаров). Чтобы выбрать все его свойства мне кажется не получится просто джойнить таблицу, т.к. вопервых столбцы будут разные, и строк будет много.
получается, получим инфо о товаре + в каше его свойства. | |
|
|
|