|
|
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Ребята!!! Очень нужна Ваша помощь, так как сам я не могу справиться, в силу своей неопытности! Хочу создать БД для динамической формы, состоящая из динамических элементов управления (компонентов). т.е. в БД должно быть прописано, из каких компонентов она должна состоять и в каком количестве (к примеру, я пишу, для формы "Мои сообщения", вывести должно выводиться 1-Panel, 4-TextBox-а, 3-кнопки). Помогите,пожалуйста, кто как сможет. С чего лучше всего начать. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 08:07 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
На сколько понимаю, Вы пытаетесь создать приложение Клиент - Сервер, и при этом избежать обновления приложения у всех пользователь путем динамического перестроения форм. Это явно не корректный подход, обычно данные задачи решаются на уровне приложения (в коде) а не на сервере. Но несмотря на это Вам необходимо создать таблицу с полями: 1. Название формы 2. Название компонента 3. Расположение по оси Х компонента 4. Расположение по оси У компонента 5. Длина компонента 6. Ширина компонента 7. Активность компонента (используется или нет) 8. Прочие мелочи ..... После этого на момент открытия формы либо приложения, Вам необходимо выполнить обычный SELECT к этой таблицы, после получения результирующего набора данных, в цикле SOURCE построчно переберете каждую строку и соответственно создадите компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 09:28 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
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". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 14:22 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
dbo.Form (ID, Form_Name, Component_ID), никуда не годится, почитайте про 3НФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 14:25 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Konst_One, я прошу прощения, Вы не могли бы расшифровать данную аббревиатуру и еще, почему присутствие таблицы Form, здесь, является неуместным? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 14:30 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmat, Я бы делал единую таблицу Component (ComponentID, ComponentName, ComponentType, ParentComponent) + хранение всех специфичных для каждого компонента свойств (координат, размеров, видимости, etc.) либо в XML-поле той же таблицы, либо в EAV-модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 14:55 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Так ведь у меня же эта таблица едина, разве нет? Просто, пока, я не добавлял в нее дополнительные поля, в которых будут введены дополнительные свойства конкретной компоненты! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:11 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmat, Вы вроде хотите 3 таблицы - зачем 3? Что такого специфичного в меню/субменю, что их нельзя хранить так же как прочие компоненты? Rроме того, насколько вижу, у Вас компонент может принадлежать только форме - как Вы будете хранить ситуацию, когда на форме лежит панель, на панели -GroupBox, на GroupBox'е - TextBox? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:18 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmatKonst_One, я прошу прощения, Вы не могли бы расшифровать данную аббревиатуру и еще, почему присутствие таблицы Form, здесь, является неуместным? Спасибо! 3-я нормальная форма по вашей схеме у вас будет или 1форма = 1компонента или дублирование данных по форме с множеством компонент, что плохо. сделайте таблицу только для описания самой формы + таблицу FormControls , где уже все привязанные к этой форме компоненты будут у вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:21 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Вообще-то это сильно зависит от того как "динамическую форму" будут создавать. Для VCL, например, естественным способом хранения будет простой BLOB, из которого данные скармливаются стандартным механизмам создания формы посредством TBlobStream. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:22 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, в принципе, ничего специфичного в таблице Меню/Субменю нет, за тем исключением, что при помощи этой таблицы, я избавляюсь от создания отдельных (лишних) таблиц, для каждого пункта меню. Объясню все на примере. Пусть есть меню, со след. пунктами: Главная Мой кабинет Объявления Поиск Контакты (Мои сообщения) (Электронный адрес) (Входящие) (Контактный телефон) (Исходящие) (Отправленные) (Мой профиль) (Мои уведомления) (Кошелек) (Настройки) Так вот, чтобы для подпунктов "Мой кабинет", не создавать отдельные таблицы, я просто запихаю их в одну таблицу, так же и для подпунктов "Мои сообщения". Что касается замечания, которое Вы сделали, касательно ситуации, когда одна компонента "лежит" на другой, об этом, я честно говоря, задумался и понял, что моя схема не годится для реализации такого случая. Был бы Вам признателен, если бы Вы посоветовали, как быть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:55 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Konst_One сделайте таблицу только для описания самой формы + таблицу FormControls , где уже все привязанные к этой форме компоненты будут у вас Не могли бы Вы прояснить более подробно, что Вы имеете ввиду! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:58 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmatКот Матроскин, в принципе, ничего специфичного в таблице Меню/Субменю нет, за тем исключением, что при помощи этой таблицы, я избавляюсь от создания отдельных (лишних) таблиц, для каждого пункта меню. Объясню все на примере. Пусть есть меню, со след. пунктами: Главная Мой кабинет Объявления Поиск Контакты (Мои сообщения) (Электронный адрес) (Входящие) (Контактный телефон) (Исходящие) (Отправленные) (Мой профиль) (Мои уведомления) (Кошелек) (Настройки) В описанную мной древовидную структуру это прекрасно ложится ComponentID Componentname ComponentType ParentID1 'Главная' 'Menu' NULL2 'Мой Кабинет' 'MenuItem' 13 'Мои сообщения''MenuItem' 2 и т.п. adimmatЧто касается замечания, которое Вы сделали, касательно ситуации, когда одна компонента "лежит" на другой, об этом, я честно говоря, задумался и понял, что моя схема не годится для реализации такого случая. Был бы Вам признателен, если бы Вы посоветовали, как быть! Я ж посоветовал уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 16:09 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, ID Menu_or_Submenu_Name Parent_ID1 Главная NULL2 Мой кабинет NULL3 Поиск NULL4 Мой профиль 25 Мои сообщения 26 Входящие 57 Исходящие 5 Вот какая у меня таблица будет, если ее заполнить! Вот на что я рассчитывал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 16:32 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmat, Ну так почему это все не держать в универсальной древовидной Component? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 16:41 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинadimmat, Ну так почему это все не держать в универсальной древовидной Component? т.е, Хотите сказать, что в эту же самую таблицу "Menu_and_Submenu" запихнуть "Тип компонента", который должен присутствовать при открытии этой формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 16:47 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Вы пытаетесь решать эту задачу слишком "в лоб". Здесь нужен какой-то уровень абстракций. Например представьте что вам нужно интерпретировать свои метаданные не только в десктопе, но и в вебе. Еще посмотрите как это сделано например в 1С8. Там не задаются конкретные координаты и вообще никакой конкретики по поводу расположения контролов, а лишь относительные правила, которые интерпретируются "платормой отображения" по своему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 18:04 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Я в 1999 году, когда решил делать подобное, стал хранить в блобе. Ничего, фирма до сих пор на этом живет и здравствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 18:09 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
DmitryVT частично прав что эти правила описываются в коде программы. А в таблицах их хранить полный изврат. Уж лучше тогда туда модули упаковывать и скачивать на клиента при запуске. Совсем другое дело если вы хотите создать некий декларативный слой для управления формами. Но как я уже говорил, тупо переносить свойства контролов в базу это тупиковый путь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 18:09 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakЯ в 1999 году, когда решил делать подобное, стал хранить в блобе. Ничего, фирма до сих пор на этом живет и здравствует. А в блобе что лежит, xml или dll или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 18:10 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
В блобе - текст вида Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Результат -- примерно как в приложенном PNG. Что-то в предпросмотре не показывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 18:24 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmatЗдравствуйте, Ребята!!! Очень нужна Ваша помощь, так как сам я не могу справиться, в силу своей неопытности! Хочу создать БД для динамической формы, состоящая из динамических элементов управления (компонентов). т.е. в БД должно быть прописано, из каких компонентов она должна состоять и в каком количестве (к примеру, я пишу, для формы "Мои сообщения", вывести должно выводиться 1-Panel, 4-TextBox-а, 3-кнопки). Помогите,пожалуйста, кто как сможет. С чего лучше всего начать. Спасибо! БД не нужно! Динамические формы можно строить на основе, например, XML. Т.е. для вашей ЯП/фреймворка нужно систему динамической генерации форм. А потом как хранить эти формы можно где угодно, хоть в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 07:12 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
Alexander A. Sak, Я извиняюсь, конечно, но кажется, Вы немного отошли от темы! Мне просто нужен совет, профессиональный, с какой стороны подойти к решению этой задачи?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 07:20 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, дело, в том, что задача поставлена именно таким образом. т.е. все компоненты, которые должны будут появляться на форме, сначала задать их в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 07:25 |
|
||
|
Структура данных для динамической формы!!!
|
|||
|---|---|---|---|
|
#18+
adimmatmad_nazgul, дело, в том, что задача поставлена именно таким образом. т.е. все компоненты, которые должны будут появляться на форме, сначала задать их в БД. Почти все современные БД умеют импорт/экспорт XML Т.е. в начале найдите ПО которое умеет рисовать формы, для вашего ЯП/фреймворка, и сохранять их XML. А потом стандартными средствами БД импортируйте/экспортируйте эти XML ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 09:06 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38617176&tid=1540921]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 313ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...