@iSensetivity
бухгалтер, програміст-самоук

Какую архитектуру БД использовать?

Проектирую БД для каталога машин. Примерно 11 а может и больше вариантов (марка, кузов, коробка) будут избираться из select`а. Вопрос, как лучше организовать таблицы? Сделать одну таблицу cars со всеми уникальными полями (читай заполняются с input`а) и полями где будут id на связаны таблицы, или таблицу с уникальными данными и в каждой таблице с не уникальными данными (марка, кузов, коробка) сделать связочного таблицб типа cars_марка, cars_кузов и при выборке из БД join`ить все эти таблицы?

Таблицьі MyISAM.
  • Вопрос задан
  • 2307 просмотров
Пригласить эксперта
Ответы на вопрос 3
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
1. Вариант использовать NoSQL хранить в JSON|XML формате. Очень гибкий вариант и быстрый.
2. Если уж только MySQL - достаточно думаю такой будет:

CARS (car_id, ....)
CARSPARAMS (cparam_id, p_pname, p_pvalue, p_car_id)
PARAMSNAMES (pname, disc)
PARAMVALUES (pvalue, disc)

PARAMSNAMES что-то вроде справочника, который будет заполняться разработчиком.
PARAMVALUES - справочник который будет наполняться пользователем в процессе набивки в inputs. c последующим использованием в будущем - список вариантов выбираться будет. или добавляться новое уникальное значение.
CARSPARAMS - список всего всего по конкретному авто.
Ответ написан
@iSensetivity Автор вопроса
бухгалтер, програміст-самоук
Т.е.
CARS (car_id, ....) - То есть информация которая не будет меняться? Дата добавления авто, id владельца?
PARAMSNAMES - справочник с именами "пробег", "цена", "модификация" и т.п. ? Тока 2 поля, ид и имя?
PARAMVALUES - а тут свой уникальньій ид, ид с PARAMSNAMES и имя?
CARSPARAMS - а тут как?
Ответ написан
@Nc_Soft
Да никак, хранить нормализовано, а выбирать надо не базой, а через sphinx или elasticsearch
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы