Цитата:по поводу модулей, прав, форм и описаний согласен - т.е одна таблица под тексты модулей, 2 -я под формы, 3-я под описания. Хотя про формы нужно думать в зависимости что из себя представляют формы.
по поводу все виды метаданных в одной таблицы - так я тоже самое имел ввиду:
класс метаданные от него наследуем все остальные классы, соответственно описания - ссылки на наследников и на таблицы с данными наследников хранятся в таблицы данных класса "Метаданные" и так далее
Про реквизиты не понял
- для всех методанных одна таблица реквизитов?
насчет модулей не совсем так.
Таблица - BlobData
используется для хранения модулей, форм, описаний, печатных форм и прочей подобной информации
Поля:
ID - (INT) - Уникальный идентификатор записи
Identifire - (text) - Наименование объекта
IsMain - (INT) - Признак главной формы
TypeID - (INT) - Тип данных владелец
KindID - (INT) - Вид метаданных
SubKindID - (INT) - Владелец внтуренний (например форма владелец текущего модуля)
ValueType - (INT) - Тип информации, 0-Форма. 1 - модуль, 2 - таблица. 3 модуль объекта, 4 - описание ...
Value - (blob) - Значение
DateTimeLastUpdate - (datetime) - Дата время последней модификации объекта
Таблица - Атрибуты (Details)
Используется для хранения списка реквизитов
Поля:
ID (INTEGER) - Уникальный номер реквизита
Identifire text NOT null - Наименование реквизита
TypeID INT - ИД типа данных
KindID INT - Ид вида метаданных
Position INT, - Номер позиции у владельца
Synonyme text - Представление
AviliableOn INT - Доступен у... Только для справочников: 0 - везде, 1 - для элемента, 2 - для группы
ValueTypeKind Text - Тип+Вид значения реквизита
IsComposite INT - Признак составного реквизита, используется когда реквизит может принимать значение разных типов, видом метаданных
Len INT - Длина, для чисел и строк
Exactness INT - Точность, для чисел
Positive INT - Признак только положительного значения
Obligatory INT - Признак обязательного реквизита
Indexed INT - Признак индексации значения
IsTable INT - Признак того, что это Табличная часть документа
ParentTable INT - Ид табличной части документа
Таблица - Метаданные (Metadata)
таблица для хранения видов метаданых
Поля:
ID INTEGER PRIMARY KEY - Ид метаданного
TypeID INT - Тип метаданного
ParentID INT - владелец, предок
Identifire Text - Идентификатор
Synonyme Text - Синоним
State INT - Состояние, скорее всего будет в виде
Params Text - Параметры, уникальны для каждого типа данных, разделябтся <|>
Comments Text - Комментарий
DateTimeLastUpdate Text - Дата время последней модификации
вот так примерно.
наследование от базового класса и создание типов метаданных на уровне конфига - гуд, но мне кажется сложно, и так или иначе достаточно базовых классов объектов которые есть в той же 1С для большинства задач.
мое видение системы - задача максимум - среда быстрой разработки бизнес-приложений. задача минимум - фреймворк (набор классов) для разработки на том же C++(QT).
информация о метаданных в подобном виде в любом случае будет удобна и нужна.