реализация БД для каталога товаров

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
alexk984
Сообщения: 433
Зарегистрирован: 2010.10.21, 15:03
Контактная информация:

реализация БД для каталога товаров

Сообщение alexk984 » 2011.01.28, 10:49

Как лучше реализовать, чтобы это быстро работало? Например таблица категорий товаров и таблица с товарами и таблица с характеристиками товаров, или второй вариант - отдельная таблица товаров для каждой категории где столбцами будут их характеристики.

Как это обычно делают?

ATI
Сообщения: 69
Зарегистрирован: 2009.09.27, 12:35

Re: реализация БД для каталога товаров

Сообщение ATI » 2011.01.28, 10:53

Таблица категорий, таблица товаров.

Аватара пользователя
alexk984
Сообщения: 433
Зарегистрирован: 2010.10.21, 15:03
Контактная информация:

Re: реализация БД для каталога товаров

Сообщение alexk984 » 2011.01.28, 11:00

А характеристики товаров - столбцы или отдельная таблица?

youroff
Сообщения: 228
Зарегистрирован: 2010.02.25, 16:05

Re: реализация БД для каталога товаров

Сообщение youroff » 2011.01.28, 11:06

Если товары разнородные, то характеристики имеет смысл разложить в плоский справочник. Гуглите Entity Attribute Value.

Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: реализация БД для каталога товаров

Сообщение Ekstazi » 2011.01.28, 11:54

Есть расширение у mc_bear, да и я выкладывал свою наработку здесь

pirrat
Сообщения: 193
Зарегистрирован: 2009.04.03, 09:41

Re: реализация БД для каталога товаров

Сообщение pirrat » 2011.01.28, 17:36

ну смотря что вы хотите получить.
например можно связать наборы атрибутов и категории, разделить атрибуты по таблицам по типам и тд

как вариант:
-товары.
-категории.
-связка категорий и товаров.
таблицы EAV (тут много вариантов), например:
-таблица атрибутов.
-таблица связки категорий и атрибутов.
-таблица связки значений и атрибутов (для одного атрибута может быть несколько значений).
-таблица связки товара, атрибута и значения (строка из предыдущей таблицы).
и тд.

Довольно гибко, но не очень быстрые запросы получатся, но для скорости можно заюзать индекс-таблицы и кэш.

описанный вариат мы используем успешно на сайте dostavka.ru + пару таблиц для индексов.
Но выборки по атрибутам, мы делаем сфинксом и гораздо реже sql.


ещё вариант: хранить атрибуты в nosql db (mongo например).

Посмотрите реализацию в известных движках, magento например: там сложно, но очень гибко.

Аватара пользователя
alexk984
Сообщения: 433
Зарегистрирован: 2010.10.21, 15:03
Контактная информация:

Re: реализация БД для каталога товаров

Сообщение alexk984 » 2011.01.28, 18:11

Нашел расширение EAV http://code.google.com/p/yiiext/ тут, но я так понял что там название атрибутов будет постоянно повторяться, это не очень хорошо.
pirrat писал(а):как вариант:
-товары.
-категории.
-связка категорий и товаров.
таблицы EAV (тут много вариантов), например:
-таблица атрибутов.
-таблица связки категорий и атрибутов.
-таблица связки значений и атрибутов (для одного атрибута может быть несколько значений).
-таблица связки товара, атрибута и значения (строка из предыдущей таблицы).
и тд.
Посмотрите реализацию в известных движках, magento например: там сложно, но очень гибко.
Спасибо за ваш ответ, буду копать в эту сторону.

Ответить