Здравствуйте!
Задача следующая. Создать репозиторий MDM для ведения справочников. Некоторые справочники имеют иерархическую структуру, т.е. это классификаторы. Причем каждая строка такого классификатора имеет набор атрибутов со значениями. Некоторые справочники с "плоской" структурой.
Мучаюсь вопросом какой тип таблицы выбрать для хранения иерархических справочников. По идее, иерархия с атрибутами - это Taxonomy. Но. Насколько я поняла из Console Reference Guide - Taxonomy используется для классификации данных, хранящихся в основных таблицах с типом Main.
Есть еще один момент - иерархические справочники ссылаются на плоские. Т.е. поля плоских справочников используются, как Lookup для полей иерархического. Таким образом плоские справочники приходится хранить в таблицах с типом Flat, т.к. таблица с типом Main может быть Lookup таблицей только для другой таблицы типа Main.
В итоге у меня получаются, что нет ни одной таблицы с типом Main. Это вообще нормально? Насколько я понимаю - так не должно быть. Но что мне хранить в Main - мне тоже не ясно. Или я должна все-таки поместить данные иерархического справочника в Main?
Немного углублюсь в структуру иерархического справочника для наглядности. Вот типы элементов одного из справочников и их положение в иерархии.
Группа
Подгруппа
Программа -> Администратор
Подпрограмма
Структура справочника сводится к следующим полям:
Код, наименование, дата начала, дата окончания, код Администратора (он есть только у Программ).
Коды Администраторов хранятся отдельным "плоским" справочником.
Есть ли у кого-нибудь идеи?
Для меня логичен такой вариант - хранить Группы, Подгруппы и т.д. отдельными таблицами с типом Main. А непосредственно в Taxonomy выстроить их иерархию, представив поля этой Taxonomy, как Lookup(Main). Но, во первых в Taxonomy нельзя делать Lookup в Main. Во вторых нельзя "лукапить" сразу несколько таблиц. Т.е. в MDM так нельзя.
Важно, чтобы в итоге, когда будет создаваться интерфейс для юзеров через Web dynpro для ведения этих справочников, они видели именно дерево. И могли добавлять новые элементы в любую его ветку.
Или для решения этой задачи нужно разделить иерархические справочники на несколько плоских (Группы - один плоский справочник, Подгруппы - другой и т.д.). Тип таблиц для них сделать Main. НЕ делать для них Taxonomy. А дерево построить уже программными средствами?