powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше организовать такую таблицу?
23 сообщений из 23, страница 1 из 1
Как лучше организовать такую таблицу?
    #34840453
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача - хранить в таблице свойства и события элементов управления разных форм. Т.е. самих форм, надписей, кнопок, строковых редакторов и т.п. Форм будет где-то 200-500, на каждой - 20-30 контролов.

Как лучше организовать хранение таких данных. Я вижу 2 варианта:

Вариант 1.

IDPropertyValue1typetform1parent01left1001top1001width3001width2001captionСупер-гипер форма2typetbutton2parent12left102top102width2002width252captionНажми на меня2onclickshowform(10)

Вариант 2.

IDtypeparentlefttopwidthheightcaptiononclick...и т.п.1tform0100100300200Супер-гипер формаNULL2tform1101520025Нажми на меняshowform(10)

И вообще, что посоветуете почитать/изучить по теме. Основная задача - генерация форм исходя из данных БД. В том числе (! непонятно, как реализовать !) обработка событий, т.е. событиям контролов могут приписываться процедуры.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34840509
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, лучше хранить в XML

Горизонтальная структура (когда один столбец соответствует одному свойству) слишком ограничена. Свойства элементов управления очень разные, и горизонтальную структуру можно создать только для суперкласса, например, Control


Вертикальная структура очень быстро разрастется до необъятных размеров. Ничего страшного в этом нет, но необходимы инструменты для редактирования этих данных. Если они есть - все ОК, если же вы планируете все вручную там настраивать - лучше не надо...

Как добавлять обработчики событий - примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
class C1
{
     public event EventHandler TestEvent;
}

class C2
{
       public void TestHandler()      {}
}

public static void Main()
{
      C1 c1Inst = new C1();
      C2 c2Inst = new C2();
      EventInfo ei = typeof(C1).GetEvent("TestEvent");
      MethodInfo mi = typeof(C2).GetMethod("TestHandler");
      ei.AddEventHandler(c1Inst, Delegate.CreateDelegate(typeof(EventHandler), mi));

}

...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34840734
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если единственная операция - хранить форму в базе, то можно просто сделать таблицу

НазваниеФормы, СодержаниеФормы (блоб) и серилизовать туда средствами языка.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34840878
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или купить компонент который делает контора,которая делает fibplus и не иметь никому мозх.стоит копейки (определенно дешевле чем месяц работы над велосипедной задачей и месяц тестирования) -решает все проблемы махом.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34841604
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shtockили купить компонент который делает контора,которая делает fibplus и не иметь никому мозх.стоит копейки (определенно дешевле чем месяц работы над велосипедной задачей и месяц тестирования) -решает все проблемы махом.Это круто, но надо в БД хранить и все элементы (контролы). В базе же должны быть прописаны реакции на события (типа onclick). Причём клиент должен уметь формировать окно исходя из данных БД, и это окно должно работать (выполнять функции по событию и т.п.).

Основная цель - автоматизировать процесс разработки форм, реализовать возможность их модификации в БД (без перепрограммирования клиента)
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34841720
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_Основная цель - автоматизировать процесс разработки форм, реализовать возможность их модификации в БД (без перепрограммирования клиента)
Цель хорошая, но для этого надо формы классифицировать - грид, сообщение, форма вода ну и.т.д. Тогда каждый вид можно формально описать.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34841845
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
модЦель хорошая, но для этого надо формы классифицировать - грид, сообщение, форма вода ну и.т.д. Тогда каждый вид можно формально описать.Зачем? Можно просто сделать таблицу с данными об объектах (формах, контролов). И выбирать из базы нужную форму + все её контолы, а потом формировать на основании этих данных форму. Свойства объектов и имена процедур (при рекции на события) берутся из этой же базы.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34841870
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все это уже реализовал. И хранение свойств и событий и их вызов

http://www.rbsystem.h18.ru/
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34841936
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergey888Я все это уже реализовал. И хранение свойств и событий и их вызов

http://www.rbsystem.h18.ru/
Во-первых, я за Вас очень рад.
Во-вторых, ваша "система" слишком громоздкая и заметно превышает требуемую функциональность.
В-третьих, я не начальник, а программист. Принять решение об использовании заказного ПО я не могу. Выполнять задачу придётся самостоятельно.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34842678
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и дурак Ваш начальник,что не хочет использовать покупное ПО.будете годами разрабатывать.
пмсм это и делает , хотя может я и не разобрался. Заплатить 500 рублей и не париться - вот это мой выбор.Программировать ради программизма-нах.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34843100
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во-первых, вы, вероятно, не поняли задачи. Повторяю.

1) Делается визуальный редактор форм, который заносит все объекты (формы, контролы) в таблицу БД. При этом можно изменять (визуально!) не только свойства контролов, но и задавать обработчика событий (например, имена функций).

2) Далее один человек создаёт формы, второй пишет нужные обработчики.

3) Первый человек "нацепляет" эти обработчики (в том же визуальном редакторе) на кнопки и прочие контролы. При этом первый человек не владеет программированием.

4) Пользователь запускает систему, которая автоматически генерирует главную (а затем и остальные) форму, при этом форма генерируется исходя из данных, заложенных в БД.

Ничего подобного ни в одном из тынцов я не нашёл. По первому тынцу нарисованы красивые диаграммы, и написаны умные слова типа "хранилища данных", "витрины данных" и т.п. - но я ничего в них не понял. По второму тынцу - XML редактор, но это совсем не то.

Во-вторых, программирование не ради программирования, а ради выполнения работы. Если использовать покупное ПО, то зачем нужен наш отдел? :)
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34843184
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_Во-первых, вы, вероятно, не поняли задачи. Повторяю.
...

Тогда вариант 1.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34843286
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_ sergey888Я все это уже реализовал. И хранение свойств и событий и их вызов

http://www.rbsystem.h18.ru/
Во-первых, я за Вас очень рад.
Во-вторых, ваша "система" слишком громоздкая и заметно превышает требуемую функциональность.
В-третьих, я не начальник, а программист. Принять решение об использовании заказного ПО я не могу. Выполнять задачу придётся самостоятельно.

Т.к. я несколько лет занимался построением этой системы, то могу заверить, что у вас система получится не менее громоздкая и возможно менее производительная. Чтобы довести ее до промышленной эксплуатации, вам придется потратить примерно 1 человеко-год.
При ЗП в 2000$ в месяц себестоимость вашей системы будет 24 000$
Удачи и привет начальнику!
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34843415
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не xml это редактор.скачайте и посмотрите. "Если использовать покупное ПО, то зачем нужен наш отдел? :)" - чтобы делать быстро на основе чужого свое (заточенное под бизнес, а не системное),а не переделывать 500 раз одно и тоже. Как уже говорилось - привет начальнику.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34857943
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гмм... Немного попроектировав эту систему, начал задумываться о смысле жизни...
А что, если я не прав?
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34857970
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_Гмм... Немного попроектировав эту систему, начал задумываться о смысле жизни...
А что, если я не прав?

А что говорит начальник?
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34858015
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В основном, ничего.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34858059
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_В основном, ничего.

наверное он просто плохо разбирается в предмете, иначе ему было-бы что сказать - однозначно :)
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34858864
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 _вопросец_

А какой язык программирования приложения (т.е. не вашего дизайнера форм, а того приложения, которое будет эти формы генерировать)? Если Дельфи, то у него есть чудесная сериализация компонентов (см. dfm). Если .NET и используется Microsoft Presentation Foundation, то там есть язык XAML, на котором описывается весь дизайн.

Я думаю, данная задача есть именно тот случай, когда функциональность СУБД нужна по минимуму, то есть чисто для хранения / извлечения, без обработки. А хранить проще данные, сериализованные с помощью некоторого удобного языка (типа приведенных выше).
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34859669
_вопросец_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendmentиначе ему было-бы что сказатьЧто именно? Придраться к очепятке? mirА какой язык программирования приложенияДельфи mirЕсли Дельфи, то у него есть чудесная сериализация компонентов (см. dfm).К своему ужасу и стыду, я не знаю, что это такое, но обязательно спрошу у Гугла. mirЯ думаю, данная задача есть именно тот случай, когда функциональность СУБД нужна по минимуму, то есть чисто для хранения / извлечения, без обработки. А хранить проще данные, сериализованные с помощью некоторого удобного языка (типа приведенных выше).По-моему, вы не совсем поняли задачу. Формы не просто должны храниться в базе, но они ещё и должны работать! Т.е. выполнять некую функциональность. Причём эта функциональность тоже должна храниться в базе, и её тоже нужно быстро изменять, без перекомпиляции кода ИС.

Чтобы было понятнее: ИС будет использоваться на 80-100 отделениях гос.организации. Сегодня вышел указ/приказ, который до завтрашнего дня надо учесть в ИС. Отделения закрываются в 18-00, открываются в 9-00. За ночь нужно провести обновление системы. Изменить код в базе легче, чем перекомпилировать исходный код и отправить exe-шник на 100 точек.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34859703
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_Чтобы было понятнее: ИС будет использоваться на 80-100 отделениях гос.организации. Сегодня вышел указ/приказ, который до завтрашнего дня надо учесть в ИС. Отделения закрываются в 18-00, открываются в 9-00. За ночь нужно провести обновление системы. Изменить код в базе легче, чем перекомпилировать исходный код и отправить exe-шник на 100 точек.
Угу. Вместо того, чтобы послать 50Кб изменений, начинаем править dfm-ы с помощью sql. Как раз к 8:59 может быть начнет работать.
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34859728
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_ proposed amendmentиначе ему было-бы что сказатьЧто именно? Придраться к очепятке? mirА какой язык программирования приложенияДельфи mirЕсли Дельфи, то у него есть чудесная сериализация компонентов (см. dfm).К своему ужасу и стыду, я не знаю, что это такое, но обязательно спрошу у Гугла. mirЯ думаю, данная задача есть именно тот случай, когда функциональность СУБД нужна по минимуму, то есть чисто для хранения / извлечения, без обработки. А хранить проще данные, сериализованные с помощью некоторого удобного языка (типа приведенных выше).По-моему, вы не совсем поняли задачу. Формы не просто должны храниться в базе, но они ещё и должны работать! Т.е. выполнять некую функциональность. Причём эта функциональность тоже должна храниться в базе, и её тоже нужно быстро изменять, без перекомпиляции кода ИС.

Чтобы было понятнее: ИС будет использоваться на 80-100 отделениях гос.организации. Сегодня вышел указ/приказ, который до завтрашнего дня надо учесть в ИС. Отделения закрываются в 18-00, открываются в 9-00. За ночь нужно провести обновление системы. Изменить код в базе легче, чем перекомпилировать исходный код и отправить exe-шник на 100 точек.

Почему не организовать автобновление exe-ника?
Люди утром приходят на работу и при загрузке компа обновляется клиент. В чем проблема?
...
Рейтинг: 0 / 0
Как лучше организовать такую таблицу?
    #34860971
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_вопросец_ mirА какой язык программирования приложенияДельфи mirЕсли Дельфи, то у него есть чудесная сериализация компонентов (см. dfm).К своему ужасу и стыду, я не знаю, что это такое, но обязательно спрошу у Гугла.Загляните в *.dfm текстовым редактором, увидите, как Дельфи хранит формы. Есть и функции для выгрузки/загрузки на этом языке.

_вопросец_ mirЯ думаю, данная задача есть именно тот случай, когда функциональность СУБД нужна по минимуму, то есть чисто для хранения / извлечения, без обработки. А хранить проще данные, сериализованные с помощью некоторого удобного языка (типа приведенных выше).По-моему, вы не совсем поняли задачу. Формы не просто должны храниться в базе, но они ещё и должны работать! Т.е. выполнять некую функциональность. Причём эта функциональность тоже должна храниться в базе, и её тоже нужно быстро изменять, без перекомпиляции кода ИС.Я как раз всё понял. Еще раз говорю, что все компоненты с их свойствами, назначенными обработчиками и т.д. можно читать/писать на языке dfm Дельфи, и создавать в run-time. Конечно, текст обработчиков там не сохранишь, но они у вас уже в программе есть, как я понимаю, то есть это не проблема
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше организовать такую таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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