|
|
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
Добрый день. Мне нужно спроектировать многоуровневый каталок с неопределенным кол-вом атрибутов у товаров определенной группы. Например есть 3 группы товаров. 1. Окна 2. Лестницы 3. Двери 4. Аксессуары к этим видам товаров У каждой группы есть свой набор атрибутов(название, размер, артикул и т.д.) Есть как общие атрибуты, так и индивидуальные под каждый вид товара или аксессуар. Как реализовать структуру такой БД? Если например атрибуты могут в дальнейшем добавляться? Если добавляется товар с новым атрибутом? Есть ли возможность все это хранить в одной таблице или необходимо разбивать каждый товар по своим таблицам? Если добавиться новый товар, что с ним делать? Если строить горизонтальную структуру, то будет очень большая избыточность при появлении нового атрибута. Если хранить все в отдельных таблицах, то при появлении нового атрибута у товара появится необходимость вносить изменения в код. Если появится новый товар, то придется, как-то добавлять новую таблицу и делать к ней привязки к справочникам. Подскажите как подойти к построению такой БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:07 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLineДобрый день. Мне нужно спроектировать многоуровневый каталок с неопределенным кол-вом атрибутов у товаров определенной группы. ... Как реализовать структуру такой БД? Если например атрибуты могут в дальнейшем добавляться? Если добавляется товар с новым атрибутом? Есть ли возможность все это хранить в одной таблице или необходимо разбивать каждый товар по своим таблицам? Если добавиться новый товар, что с ним делать? Подскажите как подойти к построению такой БД. Используйте букву "г", и храните все в одной таблице. Выберите СУБД, в которой: 1) нет ограничений на количество "колонок" в "таблице"; 2) не хранятся "пустые" значения не зависимо от положения "колонки" в "таблице"; 3) "колонки" добавляются в любой момент независимо от наличия и объема данных; 4) поддерживается управляемый пользователем интерфейс, как часть ядра СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:31 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLine Мне нужно спроектировать многоуровневый каталок с неопределенным кол-вом атрибутов у товаров определенной группы.Вы определитесь вам шашечки или ехать. Если ехать то для каждой сущьности своя таблица, общие атрибуты - поля в разных таблицах с одинаковыми названиями NewLine Если например атрибуты могут в дальнейшем добавляться?Добавляется поле NewLine Если добавляется товар с новым атрибутом?Добавляется таблица NewLine Есть ли возможность все это хранить в одной таблице или необходимо разбивать каждый товар по своим таблицам?Возможность есть, необходимости нет - rule and conquer, а также keep it simple, silly NewLine Если добавиться новый товар, что с ним делать?Вставите строку в таблицу NewLine Если строить горизонтальную структуру, то будет очень большая избыточность при появлении нового атрибута. Если вы дадите определение горизонтальной структуре я смогу откомментировать NewLine Если хранить все в отдельных таблицах, то при появлении нового атрибута у товара появится необходимость вносить изменения в код.Вносить изменения в код надо в любом случае ибо атрибут надо будет вводить, показывать, изменять. NewLine Если появится новый товар, то придется, как-то добавлять новую таблицу и делать к ней привязки к справочникам.Зато не придется перетряхивать систему, убеждаясь что окна помещенные в таблицу Двери правильно отображаются в отчете по дверям. Если вам надо шашечки - то стройте супергибкую, объектную, СУБД независимую систему. И я верю, что вы ее построите, оттестируете и сдадите. Я не верю что она будет хорошо работать при больших объемах ибо бесплатных ланчей не бывает и не имея информации о структуре оптимизатор никогда не сможет выдать хороший план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:39 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
SERG1257NewLine Мне нужно спроектировать многоуровневый каталок с неопределенным кол-вом атрибутов у товаров определенной группы.Вы определитесь вам шашечки или ехать. Если ехать то для каждой сущьности своя таблица, общие атрибуты - поля в разных таблицах с одинаковыми названиями. Если вам надо шашечки - то стройте супергибкую, объектную, СУБД независимую систему. И я верю, что вы ее построите, оттестируете и сдадите. Я не верю что она будет хорошо работать при больших объемах ибо бесплатных ланчей не бывает и не имея информации о структуре оптимизатор никогда не сможет выдать хороший план. Не используйте букву "ь", и храните все экземпляры сущности Товар именно в одной отдельной таблице. Не сторойте "супергибкую, объектную, СУБД независимую систему", а используйте супергибкую, объектную СУБД, оптимизатор которой никогда вас не подведет:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 18:02 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
Бредятина Не сторойте "супергибкую, объектную, СУБД независимую систему", а используйте супергибкую, объектную СУБД, оптимизатор которой никогда вас не подведет:)А вот это уже для соседнего форума Строить систему все равно придется с самой замечательной СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 18:26 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
SERG1257 Строить систему все равно придется с самой замечательной СУБД. Конечно, но средствами СУБД, а не приложения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 18:42 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
А если по такому принципу. Таблица для дерева: код, код родителя, папка, название - здесь будут храниться категории, товары, в общем, дерево Таблица для атрибутов - произвольный набор полей, главное, чтобы было поле "код" Таблица для связки товар-атрибут При появлении нового товара можно добавлять сколько угодно атрибутов ему в таблице атрибутов можно, например, добавить полей - признак общего. и в программе просто назанчать каждому новому товару атрибуты с этим признаком по умолчанию Смысл в том чтобы хранить товары отдельно, а атрибуты отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 19:24 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLineА если по такому принципу. Таблица для дерева: код, код родителя, папка, название - здесь будут храниться категории, товары, в общем, дерево Таблица для атрибутов - произвольный набор полей, главное, чтобы было поле "код" Таблица для связки товар-атрибут При появлении нового товара можно добавлять сколько угодно атрибутов ему в таблице атрибутов можно, например, добавить полей - признак общего. и в программе просто назанчать каждому новому товару атрибуты с этим признаком по умолчанию Смысл в том чтобы хранить товары отдельно, а атрибуты отдельно. К сожалению, Вы ничего не сказали о значениях атрибутов. Так что схема непонятна. А когда она станет понятной, получится, вероятно, модель EAV:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 23:01 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLine Смысл в том чтобы хранить товары отдельно, а атрибуты отдельно.Это не смысл это идея (EAV). А вот зачем вам это понадобилось, это мне интересно, где вы видите выгоду? Чем словарь данных не подходит для хранения атрибутов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 06:09 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
Что значит словарь данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 09:13 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLineЧто значит словарь данных? База метаданных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 11:15 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
Которая отсутствует практически во всех "современных" СУБД, поэтому никакие атрибуты в ней, конечно, нельзя хранить:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 11:19 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
NewLine, автор Например есть 3 группы товаров. 1. Окна 2. Лестницы 3. Двери 4. Аксессуары к этим видам товаров У всех дверей есть ширина,высота,материал,цвет материала(1) у входных -утеплитель,глазок,цепочка(2) следовательно при вводе очередной двери -ид -группа=дверь --запоминаем (1) -подгруппа=входная---запоминаем(2) -артикул (3) теперь в подчиненной форме должно появиться-ид2ид1типнаим характеристикизначение11(1) шириназначение21высотазначение31материалзначение41цвет материалазначение51(2)утеплительзначение61глазокзначение71цепочказначение81(3)собственные прибамбасызначение при перекрестном запросе таб1 и таб2 по ид1 ид1наименованиеширинавысотаматериалцвет материалаутеплительглазокцепочка...1дверь входная арт180220металлтемныйутепл1оптич цеп1...2дверь внутренняя70200кленсветлый--- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 11:58 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
Если у вас будет ограниченное кол-во сущностей - то сущность = таблица Если кол-во неизвестно, но известно, что их не будет десятки (сотни) - сущность = таблица Если неизвестно кол-во сущностей (а значит и их атрибуты) - то EAV для инет-магазинов - EAV - то, что доктор прописал. В "больших" системах рабочие сущности обычно известны до начала разработки. Их аналитики формализуют. Поэтому, там строго сущность = таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2010, 01:11 |
|
||
|
Многоуровневый каталок с неограниченным кол-вом атрибутов у товара
|
|||
|---|---|---|---|
|
#18+
TolkaЕсли у вас будет ограниченное кол-во сущностей - то сущность = таблица Если кол-во неизвестно, но известно, что их не будет десятки (сотни) - сущность = таблица Если неизвестно кол-во сущностей (а значит и их атрибуты) - то EAV для инет-магазинов - EAV - то, что доктор прописал. В "больших" системах рабочие сущности обычно известны до начала разработки. Их аналитики формализуют. Поэтому, там строго сущность = таблица Во всех системах все сущности всегда известны до начала разработки. Попробуйте припомнить какие новые сущности были открыты во вселенной в результате научных исследований, например, за последние три года:) Просто сейчас стало модным не описывать эти сущности. Появились нелепые термины, типа "слабоструктурированные данные" и т.п. И в нормальных СУБД нет никаких ограничений на число "колонок" в "таблицах", и они легко добавляются в эксплуатируемой системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2010, 18:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36940388&tid=1542447]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 504ms |

| 0 / 0 |
