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

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


После этого на момент открытия формы либо приложения, Вам необходимо выполнить обычный SELECT к этой таблицы, после получения результирующего набора данных, в цикле SOURCE построчно переберете каждую строку и соответственно создадите компонент.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #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
Структура данных для динамической формы!!!
    #38617565
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbo.Form (ID, Form_Name, Component_ID),

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

т.е, Хотите сказать, что в эту же самую таблицу "Menu_and_Submenu" запихнуть "Тип компонента", который должен присутствовать при открытии этой формы?
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38617889
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы пытаетесь решать эту задачу слишком "в лоб". Здесь нужен какой-то уровень абстракций. Например представьте что вам нужно интерпретировать свои метаданные не только в десктопе, но и в вебе. Еще посмотрите как это сделано например в 1С8. Там не задаются конкретные координаты и вообще никакой конкретики по поводу расположения контролов, а лишь относительные правила, которые интерпретируются "платормой отображения" по своему.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38617892
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в 1999 году, когда решил делать подобное, стал хранить в блобе.
Ничего, фирма до сих пор на этом живет и здравствует.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38617893
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryVT частично прав что эти правила описываются в коде программы. А в таблицах их хранить полный изврат. Уж лучше тогда туда модули упаковывать и скачивать на клиента при запуске.
Совсем другое дело если вы хотите создать некий декларативный слой для управления формами. Но как я уже говорил, тупо переносить свойства контролов в базу это тупиковый путь.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38617895
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakЯ в 1999 году, когда решил делать подобное, стал хранить в блобе.
Ничего, фирма до сих пор на этом живет и здравствует.
А в блобе что лежит, xml или dll или что?
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #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
Структура данных для динамической формы!!!
    #38618241
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adimmatЗдравствуйте, Ребята!!!
Очень нужна Ваша помощь, так как сам я не могу справиться, в силу своей неопытности!
Хочу создать БД для динамической формы, состоящая из динамических элементов управления (компонентов). т.е. в БД должно быть прописано, из каких компонентов она должна состоять и в каком количестве (к примеру, я пишу, для формы "Мои сообщения", вывести должно выводиться 1-Panel, 4-TextBox-а, 3-кнопки).
Помогите,пожалуйста, кто как сможет. С чего лучше всего начать.
Спасибо!

БД не нужно!
Динамические формы можно строить на основе, например, XML.
Т.е. для вашей ЯП/фреймворка нужно систему динамической генерации форм.
А потом как хранить эти формы можно где угодно, хоть в БД.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38618244
adimmat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander A. Sak, Я извиняюсь, конечно, но кажется, Вы немного отошли от темы!
Мне просто нужен совет, профессиональный, с какой стороны подойти к решению этой задачи?!
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #38618246
adimmat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul, дело, в том, что задача поставлена именно таким образом. т.е. все компоненты, которые должны будут появляться на форме, сначала задать их в БД.
...
Рейтинг: 0 / 0
Структура данных для динамической формы!!!
    #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]