Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование структур с меняющимися аттрибутами / 19 сообщений из 19, страница 1 из 1
24.06.2004, 14:52
    #32575680
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Прочитал кучу постов по проектированию номенклатурных справочников, но так и не нашел для себя четкого ответа на данный вопрос.

Задача спроетировать справочник товаров в котором:
- можно заводить любое количество разнородных товаров без перепроектирования структуры справочника
- при создании товара предоставлять возможность создавать неограниченное количество аттрибутов с возможностью указания обязательности заполнения, значения по умолчанию, списка выбора значений поля
- нормально работающего поиска по аттрибутам

Тут в форуме предлагают 2 варианта
- таблица аттрибутов в которой перечислены все возможные типы данных и указанием какой тип данных используется (большая избыточность)
- использование типа variant - говорят медленный поиск

Поелитесь пожалуста опытом! Заранее благодарен всем за ответы :)
...
Рейтинг: 0 / 0
24.06.2004, 15:45
    #32575848
viman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Заводить отдельные справочники на разные типы товаров.

...
Рейтинг: 0 / 0
24.06.2004, 15:47
    #32575852
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
...
Рейтинг: 0 / 0
24.06.2004, 15:53
    #32575874
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
>>Здесь: http://www.interface.ru/fset.asp?Url=/misc/hran_02.htm

С объектами не хочется связываться т.к. нужно только на них потратить год разработки - меня интересуют реляционные решения :(
...
Рейтинг: 0 / 0
24.06.2004, 16:51
    #32576048
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Можно сделать так:

Создай табличку с атрибутами

AttributeID
TypeID

и табличку со значениями

GoodsID
AttributeID
Value varchar(250)
...
Рейтинг: 0 / 0
24.06.2004, 16:59
    #32576087
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
2 sp
Ты бы хоть посмотрел сначала, о чем речь в статье.
-------
...
Рейтинг: 0 / 0
25.06.2004, 04:29
    #32576536
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
> можно заводить любое количество разнородных товаров без перепроектирования структуры справочника

Эта задача в общем случае не имеет решения. Hint: придется-таки разбить товары на несколько групп. ;)

> http://www.interface.ru/fset.asp?Url=/misc/hran_02.htm

Очень хороший пример того, как не надо делать. Где Анатолий такую траву берет?
...
Рейтинг: 0 / 0
25.06.2004, 06:33
    #32576546
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
С объектами не хочется связываться т.к. нужно только на них потратить год разработки

Это вам кто-то сказал или сами щас придумали???? НЕ надо бояться! Мы разрулили эту ситуацию за два месяца. При чем не самого активного программирования, а так когда руки дойдут. И все работает отлично.

В вашей ситуации объектное решение максимально вас устроит.

Хотя можно конечно и отдельной табличкой этих атрибутов. Но все равно в итоге будут те же объекты только вид сбоку.

Очень хороший пример того, как не надо делать.

А есть хороший? :)
...
Рейтинг: 0 / 0
25.06.2004, 09:42
    #32576697
Bald
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Guest_
Почему ж не имеет ? Это называется работа с неструктурированными данными.
В Открытых Системах помнится статья была на эту тему.
А что медленно - так сделать на Альфе, поднять базу в оперативку и вперед :)
...
Рейтинг: 0 / 0
25.06.2004, 11:18
    #32576937
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
to Klick

>>Это вам кто-то сказал или сами щас придумали???? НЕ надо бояться! Мы >>разрулили эту ситуацию за два месяца. При чем не самого активного >>программирования, а так когда руки дойдут. И все работает отлично.

>>В вашей ситуации объектное решение максимально вас устроит.

>>Хотя можно конечно и отдельной табличкой этих атрибутов. Но все равно в >>итоге будут те же объекты только вид сбоку

А можно попросит вас рассказать чуть по-подробнее: какой сервер баз данных, какую модель вы взяли за основу (Тенцера?) с какими сложностями столкнулись и что получили в итоге. Всегда интересен успешеный опыт.

Надо срочно реализовывать справочник - а я на распутье
...
Рейтинг: 0 / 0
25.06.2004, 11:50
    #32577047
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
/topic/78322&hl=
Вариант номер три я реализовал (только для таблиц данных используется всего три: для текста, для числовых значений, для дат). В конечном итоге структура полностью релиационная. Для удобства доступа к информации из справочников создал процедуру, которая создает представления, которые и являются необходимыми справочниками. Две таблицы пришлось хранить как таблицы, а не в этой структуре (ну извините, в них более сорока полей и боле двух тысяч записей). Если в ваших справочниках полей больше пятнадцати - то такая система хранения не подходит. Таблицы хранятся в кластере.
Еще я не совсем понял чем система Green2 отличается от той, которуя я предложил.
...
Рейтинг: 0 / 0
25.06.2004, 12:23
    #32577159
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
СУБД Firebird 1.5

Идеи Тенцера были основой в общем то... ну а дальше арзвивали сами...
таблица объектов, связей, типов объектов, атрибутов, типов атрибутов, есть историчесие атрибуты, причем все атрибуты всех типов хранятся в одной табличке...
Запросы конечно получились опупительские, но мы написали процедуры которые возвращают эти самые запросы (прямо текст их) ну а потом уже обрабатываем их - создаем вьюшки и погнали... В процедуру передаем тип объекта и получаем текст запроса который выдергивает все объекты этого типа со всеми атрибутами. Для исторических атрибутов отдельная процедура.
Тестили все это дело с примерно парой млн записей. Скорость хорошая. Т.к. практически все запросы пользуют индексы.
Но только решили использовать эту модель только для справочников, а не как у Тенцера для учета и т.д. Побоялись. Все таки всяких данных учетных будет уж очень много. А так тока справочники. Но и их набирается уже туева хуча. Особенно большие кадры, номенклатура, контрагенты, и всякие общероссийские классификаторы типа ОКУД, ОКСМ, ОКЕИ и т.д.


Трудности - решались в общем то в рабочем порядке. Например: понадобилось ввести поле отвечающее за порядок объектов. Т.к. юзерам порой надо выводит какие то данные именно в том порядке в каком они привыкли.
...
Рейтинг: 0 / 0
25.06.2004, 13:41
    #32577430
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
> Почему ж не имеет? Это называется работа с неструктурированными данными.

Неструктурированные - это одна проблема. Вторая - неоднородные. Поэтому и нет решения. В принципе. Оговорочка: средствами реляционной структуры данных. Эта задача решается xml-подобными структурами, частный случай чего Тенцер и описал.

> В Открытых Системах помнится статья была на эту тему.

С каких пор они стали источником информации?

> А что медленно - так сделать на Альфе, поднять базу в оперативку и вперед :)

Только стоимость кластера будет _на порядки_ больше стоимости разработки. ОЗУ емкостью терабайт - для Вас не проблема?

> Тестили все это дело с примерно парой млн записей.

Несерьезные объемы.

> Скорость хорошая.

При одновременной работе какого количества пользователей? Какой сервер? Какая ос? Какая dbms?
...
Рейтинг: 0 / 0
25.06.2004, 14:50
    #32577615
Bald
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Guest_
Ну по поводу Альфы я, конечно же пошутил.

Еще в стародавние времена ( в 80-е ) в САПРовских системах для таких
задач делались специализированные СУБД, конечно же нереляционные.
И никакого XML не было.
Но все-же при помощи РСУБД нереляционные модели эмулировать можно.
Вопрос, какой ценой.

sp

В свое время подобную задачу делал на Oracle
Практически все как у Klick + отдельная таблица для графических данных и документов + шаблоны для ввода и поиска данных.
При их же помощи делалась и сортировка. Плюс еще пара фич.
Такую задачу лучше всего делать на Oracle, т.к. есть замечательный оператор
INTERSECT. Он помогает упростить генерацию "опупительских" запросов и некоторые запросы выполняются в разы быстрее.
...
Рейтинг: 0 / 0
25.06.2004, 14:58
    #32577635
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
>>Эта задача решается xml-подобными структурами,

Натолкните на мысль. Где можно почитать?
...
Рейтинг: 0 / 0
25.06.2004, 15:39
    #32577754
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
Анатолий такую траву берет в окрестностях Новосибирска. Там ее дофига.
Но система , на этом сделаная, работает по его утвеждениям хорошо. Система не маленькая.
...
Рейтинг: 0 / 0
25.06.2004, 17:31
    #32578150
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
> Анатолий такую траву берет в окрестностях Новосибирска.

Спасибо, я в курсе. ;)

> Но система , на этом сделаная, работает по его утвеждениям хорошо. Система не
> маленькая.

Опять же в курсе, но все равно спасибо. ;) Вполне возможно, что работает и, возможно, всех устраивает. На самом деле, это мина замедленного действия. На минуту представьте, что потребовалось добавить этой системе версионность (что, кстати, актуально для фармдистрибьюторов) параллельно с разграничением доступа или еще какой-нибудь серьезной функциональности. Представили? Последствия оценили? Про хранилище данных надо говорить? ;)

Отмечу, что у этой лавки нет возможности поменять dba (или ведущего программера, или кто всем этим хозяйством там заведует?), - получится _очень_ дорого.

Так что вопрос о цене владения предметами художественных промыслов остается открытым. ;)

Я ни в коей мере не хочу усомниться в профессиональных навыках г-на Тенцера; вызывает сомнения необходимость тиражирования таких решений.

> Натолкните на мысль. Где можно почитать?

Начните с "Mapping DTDs to Databases" By Ronald Bourret.
...
Рейтинг: 0 / 0
25.06.2004, 19:33
    #32578346
Programmer_Ortodox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
А я вот эдак запетлял...
...
Рейтинг: 0 / 0
29.06.2004, 10:38
    #32580465
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проектирование структур с меняющимися аттрибутами
А может каждый товар хранить в виде XML поля ?
но тогда в стает вопрос о том как контролировать создание товаров (чтоб товары одного типа создавались с одинаковыми аттрибутами и не создавать дубликаты)

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


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