Zenich
Новичок
Вопрос - оптимальная структура БД для каталога автопродаж
Добрый день, уважаемые форумчане.
Сел вот за разработку каталога автопродаж и ормаю голову над реализацией БД.
Условия таковы, что параметры описания каждого конкретного автомобиля будут неизменны (т.е. поля опций как то: цвет, наличие кондиционера и т.д будут фиксированными, заказчик дал пример сайта, попросил такие же поля и сказал что ничего меняться либо добавляться не будет).
И я вот думаю, корректно ли будет сделать такие таблицы:
1. Непосредственно таблица с автомобилями, содержащая ВСЮ информацию о машине ...
2. Таблица бренды/модели - древовидная (id, parent_id, name)
3. Таблица с перечнем основных характеристик: тип двигателя, объем, тип трансмиссии (id, codename, name) - codename (benzin, diesel) будет вставляться в соответствующее поле таблицы 1
4. Таблица с перечнем опций: парктроник, ксенон и т.д. построенная по принципу таблицы 3
Т.о. поиск будет проводиться только по одной таблице, все остальные выполняют "обслуживающую" роль для внесения данных (построения выпадающих менюшек выбора) и дают возможность управлять второстепенными параметрами (по каждому параметру добавлять/удалять допустимые для него значения).
Собственно прошу более опытных коллег покритиковать, указать на слабые места такой структуры, возможно предложить что либо более оптимальное.
По форуму искал, нашел только одну ветку с похожим вопросом, но там обсуждение свелось куда то совсем не по теме и затихло.
Заранее благодарен за ответы/советы.
-~{}~ 06.10.09 14:40:
Так-с, ответов нету
Ну неужели никто не сталкивался с подобной задачей ?
Ладно, тут поступили новы вводные, задачу усложняю
1. Мультиязычность.
2. Возможность добавлять/удалять опции и параметры описания для каждого автомобиля.
Хочу попробовать вот такой вариант:
1. База будет денормализованная, все описание машины будет в одну строку в таблице, имена сотлбцов - соответствую существующим опциям и параметрам
2. Создаю 2 таблицы с названиями опций и параметров *при изменении, соответствующи столбцы будут убираться/добавляться в основную таблицу со ссписком машин).
3. Создаю таблицу языков, при добавлении языка - добавляем соответствующие сотлбцы в предыдущие 2 таблицы описаний параметров.
По моему мнению:
Плюс - проще организовать поиск
Минус - понятия не имею как все эти добавления/удаления столбцов отразятся на производительности ...
Люююдииии, ну хоть кто то откликнитесь, пожалуйста ......
Добрый день, уважаемые форумчане.
Сел вот за разработку каталога автопродаж и ормаю голову над реализацией БД.
Условия таковы, что параметры описания каждого конкретного автомобиля будут неизменны (т.е. поля опций как то: цвет, наличие кондиционера и т.д будут фиксированными, заказчик дал пример сайта, попросил такие же поля и сказал что ничего меняться либо добавляться не будет).
И я вот думаю, корректно ли будет сделать такие таблицы:
1. Непосредственно таблица с автомобилями, содержащая ВСЮ информацию о машине ...
2. Таблица бренды/модели - древовидная (id, parent_id, name)
3. Таблица с перечнем основных характеристик: тип двигателя, объем, тип трансмиссии (id, codename, name) - codename (benzin, diesel) будет вставляться в соответствующее поле таблицы 1
4. Таблица с перечнем опций: парктроник, ксенон и т.д. построенная по принципу таблицы 3
Т.о. поиск будет проводиться только по одной таблице, все остальные выполняют "обслуживающую" роль для внесения данных (построения выпадающих менюшек выбора) и дают возможность управлять второстепенными параметрами (по каждому параметру добавлять/удалять допустимые для него значения).
Собственно прошу более опытных коллег покритиковать, указать на слабые места такой структуры, возможно предложить что либо более оптимальное.
По форуму искал, нашел только одну ветку с похожим вопросом, но там обсуждение свелось куда то совсем не по теме и затихло.
Заранее благодарен за ответы/советы.
-~{}~ 06.10.09 14:40:
Так-с, ответов нету

Ладно, тут поступили новы вводные, задачу усложняю

1. Мультиязычность.
2. Возможность добавлять/удалять опции и параметры описания для каждого автомобиля.
Хочу попробовать вот такой вариант:
1. База будет денормализованная, все описание машины будет в одну строку в таблице, имена сотлбцов - соответствую существующим опциям и параметрам
2. Создаю 2 таблицы с названиями опций и параметров *при изменении, соответствующи столбцы будут убираться/добавляться в основную таблицу со ссписком машин).
3. Создаю таблицу языков, при добавлении языка - добавляем соответствующие сотлбцы в предыдущие 2 таблицы описаний параметров.
По моему мнению:
Плюс - проще организовать поиск
Минус - понятия не имею как все эти добавления/удаления столбцов отразятся на производительности ...
Люююдииии, ну хоть кто то откликнитесь, пожалуйста ......