Проектирую БД для каталога машин. Примерно 11 а может и больше вариантов (марка, кузов, коробка) будут избираться из select`а. Вопрос, как лучше организовать таблицы? Сделать одну таблицу cars со всеми уникальными полями (читай заполняются с input`а) и полями где будут id на связаны таблицы, или таблицу с уникальными данными и в каждой таблице с не уникальными данными (марка, кузов, коробка) сделать связочного таблицб типа cars_марка, cars_кузов и при выборке из БД join`ить все эти таблицы?
PARAMSNAMES что-то вроде справочника, который будет заполняться разработчиком.
PARAMVALUES - справочник который будет наполняться пользователем в процессе набивки в inputs. c последующим использованием в будущем - список вариантов выбираться будет. или добавляться новое уникальное значение.
CARSPARAMS - список всего всего по конкретному авто.
OnYourLips: если грамотно будут расставлены индексы и нормальное железо - то база будет выдавать на лету запросы. проблем с EAV нет, если только люди не умеют его готовить.
опять же - я написал Вариант 1 - делать через NoSQL.
подключить elasticsearch опять же. только архитектура будет та же. Возможно PARAMVALUES убрать можно будет. И хранить значение сразу в CARSPARAMS.
Т.е.
CARS (car_id, ....) - То есть информация которая не будет меняться? Дата добавления авто, id владельца?
PARAMSNAMES - справочник с именами "пробег", "цена", "модификация" и т.п. ? Тока 2 поля, ид и имя?
PARAMVALUES - а тут свой уникальньій ид, ид с PARAMSNAMES и имя?
CARSPARAMS - а тут как?
иногда хочется отправить Вас обратно в ВУЗ на уроки СУБД.
CARS (.... ) - многоточие это остальные ваши поля, я не знаю какие, ссылки на владельца, профиль пользователя. или еще что. Они могут меняться, кроме car_id.
PARAMSNAMES - да, справочник всех возможных Названий параметров. Можно еще добавить поле которое будет указывать на обязательность наличия в CARS, я другие поля не указываю - потому что это будет сбивать с толку, я пишу вашу конкретную задачу.
PARAMVALUES - аналогичен PARAMSNAMES - но тут хранятся Значения параметров.
CARSPARAMS (cparam_id, p_pname, p_pvalue, p_car_id) - я тут все расписал и разжевал. Научитесь читать.