структура данных итернет магазина

программирование php базы данных бд yii

есть несколько товаров(таблица product), у каждого товара должно быть любое количество характеристик, причем характеристики могут быть разными типами данных. как лучше всего составить структуру таблиц в бд? у меня есть 2 варианта: 1) отдельная таблица под все характеристики, тип характеристики -- отдельное поле. 2) разные таблицы под разные характеристики объединяющиеся в одной ссылками (правда пока не придумал, как это будет на практике).
предложите свой вариант, если есть. если нет - то какой из этих двух лучше?
p.s. необходимость разбивать на разные типы обусловлена фильтром по характеристикам, пишется всё на yii, поэтому неизвестно, удобно ли там будет проверят свой тип данных, так же неясно, удобно ли будет бродить по таблицам в поисках с нужным типом

Примечание:
Epsiloncool, да дофига наверняка. но тут магазин постольку-поскольку, кроме него ещё нужны нестандартные вещи. чем ковыряться в коде, думаю проще на yii написать

Примечание:
Epsiloncool, спасибо за eav.
Ответы:
Мало что ли готовых магазинов написано?
Я не зря про готовые решения написал. Вы тут решаете стандартную для программирования задачу, которая называется EAV (entity-attribute-value). Вариантов решения этой задачи для прямоугольных баз данных - великое множество, погуглите просто.
Другой вариант - использование непрямоугольных баз данных (MongoDB например).
Если вам необходимо что-то нестандартное, начните с описания требований к системе, постройте диаграммы взаимодействия пользователей с системой, исходя из этого спроектируйте архитектуру на абстрактном уровне, проанализируйте все это. И после этого ответ на ваш вопрос должен проясниться.
Однажды я написал маленький интернет-магазин просто, чтобы разобраться как оно вообще может работать. Для характеристик там была отдельная таблица:


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.