Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура данных для динамической формы!!! / 25 сообщений из 27, страница 1 из 2
17.04.2014, 08:07
    #38617146
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Здравствуйте, Ребята!!!
Очень нужна Ваша помощь, так как сам я не могу справиться, в силу своей неопытности!
Хочу создать БД для динамической формы, состоящая из динамических элементов управления (компонентов). т.е. в БД должно быть прописано, из каких компонентов она должна состоять и в каком количестве (к примеру, я пишу, для формы "Мои сообщения", вывести должно выводиться 1-Panel, 4-TextBox-а, 3-кнопки).
Помогите,пожалуйста, кто как сможет. С чего лучше всего начать.
Спасибо!
...
Рейтинг: 0 / 0
17.04.2014, 09:28
    #38617176
DmitryVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
На сколько понимаю, Вы пытаетесь создать приложение Клиент - Сервер, и при этом избежать обновления приложения у всех пользователь путем динамического перестроения форм. Это явно не корректный подход, обычно данные задачи решаются на уровне приложения (в коде) а не на сервере.

Но несмотря на это Вам необходимо создать таблицу с полями:
1. Название формы
2. Название компонента
3. Расположение по оси Х компонента
4. Расположение по оси У компонента
5. Длина компонента
6. Ширина компонента
7. Активность компонента (используется или нет)
8. Прочие мелочи .....


После этого на момент открытия формы либо приложения, Вам необходимо выполнить обычный SELECT к этой таблицы, после получения результирующего набора данных, в цикле SOURCE построчно переберете каждую строку и соответственно создадите компонент.
...
Рейтинг: 0 / 0
17.04.2014, 14:22
    #38617556
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
DmitryVT, Спасибо Вам огромное, за Ваш отклик.
Я уже написал кое-что, скажем так, был у меня один вариант, который я посчитал наиболее приемлемым, и он, почти, схож с вашем.
Вот,что я сделал.
Создал 3 таблицы с полями:
dbo.Menu_and_Submenu (ID, Menu_or_Submenu_Name, Parent_ID, Form_ID),
dbo.Form (ID, Form_Name, Component_ID),
dbo.Component (ID, Component_Name, Component_Value, Component_Height, Component_Width, Component_Quantity).

Как Вы считает, это хорошая схема или есть, что нибудь, что я не предусмотрел?
Спасибо!

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
17.04.2014, 14:25
    #38617565
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
dbo.Form (ID, Form_Name, Component_ID),

никуда не годится, почитайте про 3НФ
...
Рейтинг: 0 / 0
17.04.2014, 14:30
    #38617577
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Konst_One, я прошу прощения, Вы не могли бы расшифровать данную аббревиатуру и еще, почему присутствие таблицы Form, здесь, является неуместным?
Спасибо!
...
Рейтинг: 0 / 0
17.04.2014, 14:55
    #38617611
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmat,

Я бы делал единую таблицу Component (ComponentID, ComponentName, ComponentType, ParentComponent) + хранение всех специфичных для каждого компонента свойств (координат, размеров, видимости, etc.) либо в XML-поле той же таблицы, либо в EAV-модели.
...
Рейтинг: 0 / 0
17.04.2014, 15:11
    #38617631
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Кот Матроскин,
Так ведь у меня же эта таблица едина, разве нет? Просто, пока, я не добавлял в нее дополнительные поля, в которых будут введены дополнительные свойства конкретной компоненты!
...
Рейтинг: 0 / 0
17.04.2014, 15:18
    #38617644
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmat,

Вы вроде хотите 3 таблицы - зачем 3? Что такого специфичного в меню/субменю, что их нельзя хранить так же как прочие компоненты?
Rроме того, насколько вижу, у Вас компонент может принадлежать только форме - как Вы будете хранить ситуацию, когда на форме лежит панель, на панели -GroupBox, на GroupBox'е - TextBox?
...
Рейтинг: 0 / 0
17.04.2014, 15:21
    #38617652
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmatKonst_One, я прошу прощения, Вы не могли бы расшифровать данную аббревиатуру и еще, почему присутствие таблицы Form, здесь, является неуместным?
Спасибо!

3-я нормальная форма

по вашей схеме у вас будет или 1форма = 1компонента или дублирование данных по форме с множеством компонент, что плохо.

сделайте таблицу только для описания самой формы + таблицу FormControls , где уже все привязанные к этой форме компоненты будут у вас
...
Рейтинг: 0 / 0
17.04.2014, 15:22
    #38617653
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Вообще-то это сильно зависит от того как "динамическую форму" будут создавать. Для VCL, например, естественным способом хранения будет простой BLOB, из которого данные скармливаются стандартным механизмам создания формы посредством TBlobStream.
...
Рейтинг: 0 / 0
17.04.2014, 15:55
    #38617695
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Кот Матроскин, в принципе, ничего специфичного в таблице Меню/Субменю нет, за тем исключением, что при помощи этой таблицы, я избавляюсь от создания отдельных (лишних) таблиц, для каждого пункта меню. Объясню все на примере.
Пусть есть меню, со след. пунктами:
Главная Мой кабинет Объявления Поиск Контакты
(Мои сообщения) (Электронный адрес)
(Входящие) (Контактный телефон)
(Исходящие)
(Отправленные)
(Мой профиль)
(Мои уведомления)
(Кошелек)
(Настройки)

Так вот, чтобы для подпунктов "Мой кабинет", не создавать отдельные таблицы, я просто запихаю их в одну таблицу, так же и для подпунктов "Мои сообщения".

Что касается замечания, которое Вы сделали, касательно ситуации, когда одна компонента "лежит" на другой, об этом, я честно говоря, задумался и понял, что моя схема не годится для реализации такого случая.

Был бы Вам признателен, если бы Вы посоветовали, как быть!
...
Рейтинг: 0 / 0
17.04.2014, 15:58
    #38617699
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Konst_One
сделайте таблицу только для описания самой формы + таблицу FormControls , где уже все привязанные к этой форме компоненты будут у вас

Не могли бы Вы прояснить более подробно, что Вы имеете ввиду!
...
Рейтинг: 0 / 0
17.04.2014, 16:09
    #38617709
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmatКот Матроскин, в принципе, ничего специфичного в таблице Меню/Субменю нет, за тем исключением, что при помощи этой таблицы, я избавляюсь от создания отдельных (лишних) таблиц, для каждого пункта меню. Объясню все на примере.
Пусть есть меню, со след. пунктами:
Главная Мой кабинет Объявления Поиск Контакты
(Мои сообщения) (Электронный адрес)
(Входящие) (Контактный телефон)
(Исходящие)
(Отправленные)
(Мой профиль)
(Мои уведомления)
(Кошелек)
(Настройки)

В описанную мной древовидную структуру это прекрасно ложится
ComponentID Componentname ComponentType ParentID1 'Главная' 'Menu' NULL2 'Мой Кабинет' 'MenuItem' 13 'Мои сообщения''MenuItem' 2
и т.п.

adimmatЧто касается замечания, которое Вы сделали, касательно ситуации, когда одна компонента "лежит" на другой, об этом, я честно говоря, задумался и понял, что моя схема не годится для реализации такого случая.

Был бы Вам признателен, если бы Вы посоветовали, как быть!

Я ж посоветовал уже
...
Рейтинг: 0 / 0
17.04.2014, 16:32
    #38617749
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Кот Матроскин,
ID Menu_or_Submenu_Name Parent_ID1 Главная NULL2 Мой кабинет NULL3 Поиск NULL4 Мой профиль 25 Мои сообщения 26 Входящие 57 Исходящие 5

Вот какая у меня таблица будет, если ее заполнить! Вот на что я рассчитывал.
...
Рейтинг: 0 / 0
17.04.2014, 16:41
    #38617763
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmat,

Ну так почему это все не держать в универсальной древовидной Component?
...
Рейтинг: 0 / 0
17.04.2014, 16:47
    #38617777
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Кот Матроскинadimmat,

Ну так почему это все не держать в универсальной древовидной Component?

т.е, Хотите сказать, что в эту же самую таблицу "Menu_and_Submenu" запихнуть "Тип компонента", который должен присутствовать при открытии этой формы?
...
Рейтинг: 0 / 0
17.04.2014, 18:04
    #38617889
dma_caviar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Вы пытаетесь решать эту задачу слишком "в лоб". Здесь нужен какой-то уровень абстракций. Например представьте что вам нужно интерпретировать свои метаданные не только в десктопе, но и в вебе. Еще посмотрите как это сделано например в 1С8. Там не задаются конкретные координаты и вообще никакой конкретики по поводу расположения контролов, а лишь относительные правила, которые интерпретируются "платормой отображения" по своему.
...
Рейтинг: 0 / 0
17.04.2014, 18:09
    #38617892
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Я в 1999 году, когда решил делать подобное, стал хранить в блобе.
Ничего, фирма до сих пор на этом живет и здравствует.
...
Рейтинг: 0 / 0
17.04.2014, 18:09
    #38617893
dma_caviar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
DmitryVT частично прав что эти правила описываются в коде программы. А в таблицах их хранить полный изврат. Уж лучше тогда туда модули упаковывать и скачивать на клиента при запуске.
Совсем другое дело если вы хотите создать некий декларативный слой для управления формами. Но как я уже говорил, тупо переносить свойства контролов в базу это тупиковый путь.
...
Рейтинг: 0 / 0
17.04.2014, 18:10
    #38617895
dma_caviar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Alexander A. SakЯ в 1999 году, когда решил делать подобное, стал хранить в блобе.
Ничего, фирма до сих пор на этом живет и здравствует.
А в блобе что лежит, xml или dll или что?
...
Рейтинг: 0 / 0
17.04.2014, 18:24
    #38617916
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
В блобе - текст вида
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
[@FORM]
CAPTION=Моя крутая форма
INSERT_OBJECT=A_TABLE
UPDATE_OBJECT=A_TABLE
DELETE_OBJECT=A_TABLE

[@COMBOBOX]
LABEL=Название
MACRO=STRING
PARAM=name


[@COMBOBOX]
LABEL=Внутр. имя
MACRO=STRING
PARAM=internal_name

[@COMBOBOX]
LABEL=Сокращенно
MACRO=STRING
PARAM=short_name



Результат -- примерно как в приложенном PNG. Что-то в предпросмотре не показывает.
...
Рейтинг: 0 / 0
18.04.2014, 07:12
    #38618241
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmatЗдравствуйте, Ребята!!!
Очень нужна Ваша помощь, так как сам я не могу справиться, в силу своей неопытности!
Хочу создать БД для динамической формы, состоящая из динамических элементов управления (компонентов). т.е. в БД должно быть прописано, из каких компонентов она должна состоять и в каком количестве (к примеру, я пишу, для формы "Мои сообщения", вывести должно выводиться 1-Panel, 4-TextBox-а, 3-кнопки).
Помогите,пожалуйста, кто как сможет. С чего лучше всего начать.
Спасибо!

БД не нужно!
Динамические формы можно строить на основе, например, XML.
Т.е. для вашей ЯП/фреймворка нужно систему динамической генерации форм.
А потом как хранить эти формы можно где угодно, хоть в БД.
...
Рейтинг: 0 / 0
18.04.2014, 07:20
    #38618244
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
Alexander A. Sak, Я извиняюсь, конечно, но кажется, Вы немного отошли от темы!
Мне просто нужен совет, профессиональный, с какой стороны подойти к решению этой задачи?!
...
Рейтинг: 0 / 0
18.04.2014, 07:25
    #38618246
adimmat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
mad_nazgul, дело, в том, что задача поставлена именно таким образом. т.е. все компоненты, которые должны будут появляться на форме, сначала задать их в БД.
...
Рейтинг: 0 / 0
18.04.2014, 09:06
    #38618287
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура данных для динамической формы!!!
adimmatmad_nazgul, дело, в том, что задача поставлена именно таким образом. т.е. все компоненты, которые должны будут появляться на форме, сначала задать их в БД.

Почти все современные БД умеют импорт/экспорт XML
Т.е. в начале найдите ПО которое умеет рисовать формы, для вашего ЯП/фреймворка, и сохранять их XML.
А потом стандартными средствами БД импортируйте/экспортируйте эти XML ;-)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура данных для динамической формы!!! / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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