Разработка словаря данных (с визуальным дизайнером)

Web/сайты Прочее

Был(а) онлайн: 26.04.20 14:45
Umen 26 лет

1.0 Был(а) онлайн: 26.04.20 14:45

Недавно
Постановка на компонент Дельфи, обеспечивающий создание, метаморфоза, хранение конструкций таблиц БД.

Доктрина.
1. В жизни нет таблиц и полей. Есть сущности, и их признаки.
2. Количество функциональных разновидностей сущностей перечислимо (систематизация будет дана).
3. Атрибуты сущностей делятся на два типа:
3.1. Собственные;
3.2. Зависимые от равноправного взаимодействия с другими сущностями.
4. Таблицы, предуготовленные для хранения значений признаков экземпляров сущностей, разделяются на два типа:
4.1. Значения собственных признаков сущностей хранятся в Таблицах Основных Записей.
4.2. Значения признаков, зависимых от равноправного (многие-ко-многим) взаимодействия с другими сущностями, хранятся в Таблицах-Ракурсах.
5. Все допустимые признаки всяких сущностей систематизируемы по своему смыслу и могут быть отнесены к перечислимому числу функциональных классов. Ориентация не на тип признаков, а на их предназначение!
6. Каждая сущность имеют текстовые изложения длиной: 20, 40 и 60 символов, зависящих от языка;

Требования.
1. Компонент не использует никаких компонент VCL, предуготовленных для работы с базами данных, за исключением TDataBase.
2. Иерархия типов признаков подлинна (никаких TFieldDefs!), будет дана.
3. Визуальный редактор сущностей и их свойств, трудоспособный как в Design-time, так и в Run-time. Ориентированность редактора на древовидный интерфейс. Заданная иерархия классов таблиц и признаков (см. выше).
4. Компонент должен быть способным самосильно осуществлять (посредством языка SQL и компоненты TDataBase) инсталляцию, метаморфоза и удаление конструкций данных, в следующих типах СУБД:
4.1. MS SQL;
4.2. Oracle;
4.3. InterBase.
5. Возможность сохранения конструкции как в DFM-файле, так и в базе данных (временно дозволено применять TTable для сохранения-выборки из БД самих конструкций данных – но с прицелом на то, что потом будет применяться иной компонент).
6. Не нужно вопросов «А чем тебя не устраивает TDataSet/TTable/TField/TDataProvider/и т.д. и т.п.». Считайте, что это мой каприз.

Желанно еще разработать довольно непростой алгорифм, тот, что дозволено было бы назвать анализатором зависимостей (дальше – анализатор).
Это необязательное условие, но если сделаете - доплата 4.000 рублей.

Представим, есть несколько сущностей, со своими признаками (буква – сущность, Буква.Цифра – ее признак), а также пара ракурсов.

1. A
1.1. A.1 (ключ)
1.2. A.2
1.3. A.3
2. B
2.1. B.1 (ключ)
2.2. С.1 (ключевая ссылка на сущность C)
2.3. B.2
2.4. B.3
3. X (ракурс A+B)
3.1. A.1 (ключ)
3.2. B.1 (ключ)
3.3. X.1
3.4. X.2
3.5. X.3
4. C
4.1. C.1 (ключ)
4.2. C.2
5. D
5.1. A.1 (ссылка на сущность A)
5.2. D.1
5.3. D.2
6. Y (ракурс C+D)
6.1. C.1 (ссылка на сущность C).
6.2. D.1 (ссылка на сущность D)
6.3. Y.1
6.4. Y.2

У меня есть спецтехнология, разрешающая представлять эти конструкции в виде иерархического дерева, с вероятностью произвольно переставлять ярусы местами, убирать либо добавлять ярусы, показывать только отдельные признаки сущностей.
Скажем, как в виде
C.1 - B.2 - A.3 - D.2 ,
так и, скажем, в виде
A.1 – B.1 – C.1 .

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

Пример. Мы показали пользователю конструкции в виде дерева
B.2
A.1
B.1

Пользователь хочет сотворить новое значение на ярусе B.1 (т.е., сотворить новейший экземпляр сущности B).
Анализатор должен определить, что при создании данного экземпляра, автоматом заполняется значением поле B.2 (в силу того, что оно теснее указано в дереве на больше высоком ярусе), плюс автоматом создается пересечение с объектом A (в силу того, что это тоже теснее определено деревом).

Либо, больше трудные зависимости.
C.1
D.2
B.2
A.1
На ярусе B.2: при изменении значения признака, значение этого признака меняются у всех экземпляров сущности B, которые:
Принадлежат к C.1;
И
Имеют пересечения с А, которым принадлежат объекты D, имеющие пересечение с C.1 и имеющие значение D.2.

D.2
C.1
B.2
A.1

На ярусе A.1:
При создании экземпляра A.1:
Ему автоматом присваиваются объекты D с признаком D.2, имеющие пересечение с C.1;
Создаются пересечения нового объекта A.1 с тем объектами B, которые имеют значение B.2 и подчиняются к C.1.

Больше подробная информация – победителю конкурса.

Сроки.
2 недели - первая часть.
2 недели - опциональная часть.
Бюджет.
5+4 т.рублей

Чтобы добавить заявку к этому заказу, нужно войти или зарегистрироваться

Мой блок

26.04.20 14:45
Umen 26