![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
skaizer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
Здравствуйте! Возникла проблема с проектированием базы данных под каталог товаров.
Проблема в том, что в каталоге может содержаться множество товаров различного типо, то есть у каждого из них будут свои какие-то индивидуальные характеристики, которых у другого товара не будет. Поэтому невозможно подогнать одну универсальную таблицу для хранения всех товаров в ней, либо возможно но пока я не придумал как. Добавление нового товара пока что я представляю следующим образом: админ заходит в раздел каталог товаров, нажимает на ссылку создать шаблон товара, где заранее определяет все поля, окторые будут содержаться в описании товара данного типа. Потом уже в нужном разделе давит "Добавить товар", где выбирает его шаблон из списка шаблонов и заполняет формы из шаблона. Пока что как реализовать данный вариант я не придумал ![]() Если у вас есть какие-нибудь мысли по этому поводу, напишите, пожалуйста, буду очень признателен! Это сообщение отредактировал(а) skaizer - 14.4.2008, 14:39 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
неправильная политика
товары хоть и разные должны быть приведены к нескольким типам, а складировать их всё же лучше в одну таблицу с фиксированным количеством полей. лучше пусть многие из них будут пустыми, чем делать переменные таблицы. лучше задать основные поля, и несколько дополнительных полей, которые в каждом конкретном случае будут обозначть что-то своё |
|||
|
||||
kulikoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 5.11.2005 Где: Киев Репутация: нет Всего: 1 |
А не проще создать таблицу для товаров, в которой будут все одинаковые характеристики (скажем, название, производитель, цена и т.д.), каждому товару присвоить тип (холодильник, плитап и т.д.), а потом для каждого типа создать свою таблицу с уникальными свойствами (скажем, для плиты - кол-во комфорок, газ/электро и т.д., а для холодильника - моща компресса и т.д.). Или каждый-каждый товар уникален?
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
Вот еще один подход...
Есть абстрактная таблица названий свойств и типом (числовой, текстовый ets..) (properties) Есть таблица с конкретными значениями свойств, с привязкой к таблице properties (itemprop :: itemprop.id_prop->properties.id) в зависимости от типа свойства заполняется то или иное поле ... и есть таблица товаров, в которой есть только id товара и id его свойства.(stock :: stock.prop -> itemprop.id) Выборка и работа с товарами пишется несколько более сложными запросами, чем простой select, зато в такую структуру можно вложить все свойства и примочки товаров, которые могут придти в голову менеджеру.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
ksnk, только кроме структуры надо еще хранить сами значения свойств для конкретного товара
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
Fortop, Дык да! Таблица itemprop этим и занимается ;)
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
Точно, я перепутал связи. Тогда все ок.
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |