Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Представление номенклатуры / 6 сообщений из 6, страница 1 из 1
28.02.2006, 09:18
    #33569633
GebeusRaider
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
Всем доброго здоровья.
Итак имеется следующая проблема. Необходимо хранить в реляционной базе данных список товаров. Эти товары имеют список аттрибутов и их значения. Изначально список аттрибутов не определен. Аттрибуты могут быть сложные и иметь список значений (варианты альтернатив).
Рассмотрим пример (все эти товары должны хранится в одной структуре): 1) джинсы. аттрибуты (сложные) размер (46, 48, XL - размеры также должны хранится в отдельной таблице), цвет (синий, темносиний, черный ...), и аттрибуты (просты) на молнии или пуговицах, и т.д.; 2) чайные наборы: аттрибут спискок расцветок (китай, детские ...)

Ломаю голову как это все запихнуть в одну структуру, что бы гибко можно было настраивать список аттрибутов и список значений аттрибутов. И еще, что бы пользователю показывать только те значения аттрибутов, которые относятся только к этому аттрибуту.
...
Рейтинг: 0 / 0
28.02.2006, 10:06
    #33569777
Petr Chulkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
здесь этот вопрос многократно обсуждался...
воспользуйтесь поиском..

ну а если в 2-х словах -используйте принцип связи "много-к-много"...

С уважением,
Petr[@]Chulkov.NET
...
Рейтинг: 0 / 0
28.02.2006, 10:09
    #33569788
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
EAV ищите. Много раз обсуждалось.
Здесь на форуме известна также как модель по Тенцеру.
...
Рейтинг: 0 / 0
28.02.2006, 10:13
    #33569803
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
Код: plaintext
1.
2.
3.
4.
5.
Товар( 1 )->имеет->(М)Атрибут( 1 )->имеет->(М)Значение
                        (М)
                         |
                        ( 1 )
             Справочник атрибутов
        (возможно с типом значения)
...
Рейтинг: 0 / 0
28.02.2006, 22:24
    #33572156
grexhide
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
ModelREAV ищите. Много раз обсуждалось.
Здесь на форуме известна также как модель по Тенцеру.

да херня эта - а не модель.

Толя тогда или водки паленой перепил, или травы обкурился,
для студентов может и "крута" выглядит, в реальной жизни -
абсолютно не применимо ни под каким соусом.

однозначно забить конечное количество полей.
практикой доказано - статично по 32 поля трех типов.
на клиенте - рулить видимостью-невидимостью-позициями полей в гриде и
контролов на форме:

целое - для ссылок
плавающее - размеры
строка - наименования

типология номенклатур. - с описанием
подсправочников и форматов наименований, процедур и пр.
+разумная избыточность. все хранить в избыточном виде - конечные наименования считать и хранить по формулам. поисковые поля
отдельно - 32 штуки. в UpperСase или еще как.

первые поисковые поля (часто используемые в поиске) - загнать в составные индексы. остальные по отдельности загнать в компрессированные индексы.
запрос анализировать - если есть возможность пользовать составной индекс,
то использовать связанные (bind) параметры. если нет - то использовать
литеральные параметры - что-бы можно было дать CBO оптимизатору
использовать гистограммы (Oracle).
...
Рейтинг: 0 / 0
01.03.2006, 10:25
    #33572697
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление номенклатуры
grexhide
Толя тогда или водки паленой перепил, или травы обкурился,
Не он один. Мы тоже пользовали еще дцать лет назад на Clipper, даже не зная ни его статьи ни западного слова EAV. И получалось. grexhide
однозначно забить конечное количество полей.
практикой доказано - статично по 32 поля трех типов.
целое - для ссылок
плавающее - размеры
строка - наименования
32 наверное многим хватит. А типов маловато будет - еще Даты по крайней мере. grexhide

типология номенклатур. - с описанием
подсправочников и форматов наименований, процедур и пр.
+разумная избыточность. все хранить в избыточном виде - конечные наименования считать и хранить по формулам. поисковые поля
отдельно - 32 штуки. в UpperСase или еще как.

первые поисковые поля (часто используемые в поиске) - загнать в составные индексы. остальные по отдельности загнать в компрессированные индексы.
запрос анализировать - если есть возможность пользовать составной индекс,
то использовать связанные (bind) параметры. если нет - то использовать
литеральные параметры - что-бы можно было дать CBO оптимизатору
использовать гистограммы (Oracle).Вот это уже алхимия, и выйдет ли перестраивать индексы под меняющийся поток запросов дешевле EAV - вопрос.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Представление номенклатуры / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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