![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
с лета никак не определюсь как должна быть устроена система.
Итак, есть море оборудования, на них датчики. С датчиков собирается информация и акумулируется в БД (FireBird). На клиентских машинах (их может быть очень много) стоит прога (назовем её клиент). С клиента всю ситему можно настривать (какие датчики опрашивать, параметры оборудования задавать и т.п.), и получать отчеты о работе оборудования (т.е. история изменения параметров, история показаний датчиков). Отчеты в общем случае одинаковые, то есть почасовое состояние оборудования (например, сигналов с датчиков), но формулы расчета разные зависят от типа датчиков и оборудования. Текущая структура выглядит так: Хочется сделать так, чтобы пользователь мог в водить формулы расчета для заданного параметра. Но пока они жестко зашиты и вся обработка данных (разные расчеты, подготовка промежуточных результатов для отчетов) ведется в нутри БД с помощью тригеров, а при запросе с клиента еще и ХП'шки подключаются к этому процессу, досчитывая/выбирая необходимые данные. последний факт приводит к тормозам на стороне клиента. Собирать отчетные данные помере сбора данных годится только для данной конкретной обстановке (определяемой настройками оборудования). Вот я думаю заменить на этой схеме желтый квадратик либо на приложение, которое будет принимать события от БД (уведомления) заниматся расчетами и складывать в некую выходную таблицу, либо на UDF'ку, которая будет вызыватся тригером делать расчет, а тригер будет помещать результат в некую выходную таблицу. Т.е. вынести прикладную часть (т.н. бизнес логику) Может у кого есть мысли по этому поводу, а то и вовсе опыт создания подобных систем? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
уровень данных над базой что значит над базой?Нужно очень постараться, чтобы на таких объёмах отчёты тормозили. я использую вариант который привел в теме FireBird: как преобразовать строки в столбцы?этож просто параметры ну и что, их можно рассматривать как теже оперативные данные, только меняются с другой скоростью (не синхронно)
|
|
|
Tonal |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Это значит некоторый свой, по возможности, независимый от Qt набор классов и контейнеров для нужных тебе данных и преобразований над ними. Делается GUI, который всё это добро отображает. Далее, делается связь этого добра с базой и/или непосредственно с прибором, чтобы можно было загружать данные. Т.е. ты в GUI ничего не знаешь о том откуда пришли эти данные и знать не хочешь. А при работе с базой тебе поровну что, как и где там будет отображаться. ![]() Т.е замена базы или её структуры не затронет GUI. Кроме того, можно вместо гуя делать какие-то другие штуки - например какой-нибудь анализ и кластеризацию без учёта того как устроена база и есть ли она вообще. ![]() П.С. Кстати, этот слой и называют "слоем прикладной логики" или "бизнес логики". ![]() Сообщение отредактировал Tonal - 27.12.2008, 7:36 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 23.7.2025, 4:49 |