CREATE TABLE gd_class (
id dintkey,
parent dparent,
name dname,
is_subtype dboolean_notnull,
aview dsecurity,
achag dsecurity,
afull dsecurity
)
Странно, что это не было сделано до сих пор. Содержимое таблицы GD_COMMAND с самого начала рассматривалось больше, как дерево команд на экране, а не иерархия классов внутри платформы. Наверное, в нашем сознании, классы были настолько неотъемлемой частью именно программы, что возможность поместить их в реляционную таблицу не рассматривалась даже тогда, когда бизнес-объекты своими подтипами уже фактически зависли где-то между выполняемым модулем и базой данных.
Создав такую таблицу, сразу возникает вопрос: в какой момент ее заполнять? Не хотелось бы вешать еще одну синхронизацию в момент загрузки программы, наподобие синхронизации информации о структуре БД. Однако, жестко прописывать информацию в базе и требовать от разработчика модифая после каждого изменения иерархии классов, тоже не лучший выход.
На вскидку, еще несколько областей, где таблица со списком классов была бы востребована:
- При определении какие поля атрибуты следует включать в запрос бизнес-объекта по-умолчанию. Сейчас соответствующая информация хранится в текстовом виде в поле OBJECTS таблицы AT_RELATION_FIELDS.
- Дерево классов в Проводнике Редактора скрипт-объектов можно было бы строить непосредственно по этой таблице.
Комментариев нет:
Отправить комментарий