powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Каталог товаров для интернет магазина (EAV)
10 сообщений из 10, страница 1 из 1
Каталог товаров для интернет магазина (EAV)
    #37138046
Проектируется база под приложение аналогичное "яндекс-маркет".
Думаю хранить отдельно таблицу категорий и отдельно товары. Для каждой группы товаров - разные наборы характеристик, почитал форум, нашел что мне нужен видимо EAV. Но никак не могу выбрать:
1) Как лучше - по таблице под каждый тип значения, или просто по столбцу?
2) Какой вариант хранения структуры лучше - рекурсивный (parentId) или вложенные множества? Может есть еще варианты хранения древовидных структур?




---
Иисус Христос - Путь, Истина и Жизнь.
Отвергающий Сына отвергает Отца
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37138578
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клюшин Герман1) Как лучше - по таблице под каждый тип значения, или просто по столбцу?
2) Какой вариант хранения структуры лучше - рекурсивный (parentId) или вложенные множества? Может есть еще варианты хранения древовидных структур?

1) на мой взгляд все в одну таблицу значений, в одном и том же поле типа varchar или variant(в зависимости от СУБД).
Это проще в сопровождении и разработке.
Вариант с таблицей под каждый тип значений на мой взгляд особых преимуществ не дает.
Не выносите только в EAV наименование и цену. Эти атрибуты есть у всех товаров (возможно какие то еще).
2) Сильно зависит от используемой СУБД. Современные промышленные поддерживают рекурсивные запросы по деревьям с возможностью получения различной информации по иерархии (connect by в Oracle и CTE/WITH в MSSQL), поэтому для таких СУБД нет смысла реализовывать дополнительный механизм на основе вложенных множеств.
К тому же вложенные множества дают преимущества при поиске, но при update и insert могут стать узким местом если дерево большое, т.к. его приходится перенумеровывать полностью если новый узел добавляется близко к корню или к узлу имеющему большое поддерево.
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37138823
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Клюшин ГерманПроектируется база под приложение аналогичное "яндекс-маркет".
Две таблицы: собсно товары (наименование, код, что-то еще) и таблица атрибутов - код, имя атр. , значение - varchar, дата
+ метаописание - перечень всех атрибутов и их типов
+ одна или несколько таблиц классификаторов - они д.б. иерархическими
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37140410
Роман Дынник1) на мой взгляд все в одну таблицу значений, в одном и том же поле типа varchar или variant(в зависимости от СУБД).
Это проще в сопровождении и разработке.
Вариант с таблицей под каждый тип значений на мой взгляд особых преимуществ не дает.
Не выносите только в EAV наименование и цену. Эти атрибуты есть у всех товаров (возможно какие то еще).
2) Сильно зависит от используемой СУБД. Современные промышленные поддерживают рекурсивные запросы по деревьям с возможностью получения различной информации по иерархии (connect by в Oracle и CTE/WITH в MSSQL), поэтому для таких СУБД нет смысла реализовывать дополнительный механизм на основе вложенных множеств.
К тому же вложенные множества дают преимущества при поиске, но при update и insert могут стать узким местом если дерево большое, т.к. его приходится перенумеровывать полностью если новый узел добавляется близко к корню или к узлу имеющему большое поддерево.
СУБД скорее всего MySQL, потому надо придумывать какой нить изворот, чтобы создать дерево, и соответственно хранить параметры в varchare не получится, ибо нужен и поиск и сортировка по ним (или я что-то не так понял?)

С другой стороны можно взять Firebird, с ним довольно долго работал, но имеет ли смысл использовать этот движок в web проекте, особенно если он будет довольно сильно нагружен (примерно 100 000 пользователей одновременно).
Насчет Постгреса - сложно ли на него переквалифицироваться с MySQL?

З.Ы. Насчет наименования и цены - ясное дело :)
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37141141
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клюшин Герман(примерно 100 000 пользователей одновременно)ох уж мне эти прожектёры...
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37141448
miksoftКлюшин Герман(примерно 100 000 пользователей одновременно)ох уж мне эти прожектёры...
Думаете нереальные данные?
Для Яндекс маркета среднее посещаемость только по России в будние дни месяца
Янв 2011 1 027 100
Дек 2010 1 062 900

Соответственно одновременно "сидит" на линии даже поболее :)
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37141458
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клюшин Германmiksoftпропущено...
ох уж мне эти прожектёры...
Думаете нереальные данные?
Для Яндекс маркета среднее посещаемость только по России в будние дни месяца
Янв 2011 1 027 100
Дек 2010 1 062 900

Соответственно одновременно "сидит" на линии даже поболее :)Вы "дневная" от "одновременно" отличаете?
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37142162
miksoft,

ну если всего в день более миллиона, то одновременная пиковая нагрузка в 100 000 может быть легко.
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37142220
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клюшин Германmiksoft,

ну если всего в день более миллиона, то одновременная пиковая нагрузка в 100 000 может быть легко.Видимо, Ваша арифметика сильно отличается от общепринятой.

Вот моя:
Дано (или предполагается):
1) миллион пользователей в сутки
2) средний пользователь открывает 10 страниц
3) генерация одной страницы длится 1 секунду

Тогда средняя интенсивность генерации страниц составляет:
(1000000 пользвателей/сутки) / (24 часов/сутки) / (60 минут/час) / (60 секунд/минута) * 10 страниц/пользователь * 1 секунд/страница ~= 115 одновременных генераций страниц.
Поправка на пиковые значения, максимум, один порядок.
Т.е. пик составляет порядка тысячи одновременных генераций страниц.

Возможно, я слегка ошибся в предположениях, но все равно не на два порядка.

Да и вашему проекту до Яндекс.Маркета по посещаемости еще расти и расти.
Я практически уверен, что чтобы достичь производительности, сравнимой с Я.М, вам придется переписывать всю систему с нуля. И, скорее всего, не один раз. Так что сейчас даже на три порядка меньшие цифры заморачиваться смысла не вижу.
...
Рейтинг: 0 / 0
Каталог товаров для интернет магазина (EAV)
    #37142514
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клюшин ГерманНасчет Постгреса - сложно ли на него переквалифицироваться с MySQL?

Есть свои особенности БД, запросов и пр. Но если есть действительно уверенные знания а не "что-то слышал", то я думаю за пару месяцев легко освоите. Ну по ходу будете набивать шишек и получать практический опыт. Это собственно у всех так. Я б советовал при большом объеме сразу лепить на постгресе и не тратить время на мускул. Хотя опять таки все зависит от деталей. Но если это не ваше родное а делается на заказ клиенту то лепите на постгри.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Каталог товаров для интернет магазина (EAV)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]