русский
Germany.ruForen → Архив Досок→ Programmierung

Задачи для начинающих

10.02.21 15:48
Re: Задачи для начинающих
 
MrSanders коренной житель
in Antwort koder 10.02.21 13:57
Любой дурак может повесить триггер в конкретной базе данных. Нужен доступ и мануал. Но еще раз, триггеры - это последнее средство для стандартных мероприятий. Это внутренние дела базы данных, можно организовать логгирование, но никогда CRUD - операции

В общем случае - нет. БД может использоваться как "связь" межу приложениями. Хоть это и не очень хорошо. И тогда триггер это самое простое и адекватное средство.

В примере с кофе - представьте что у нас одна база со счетами и бухгалтерией - таблицей, в которую записано сколько кофе каждого сорта продали, к которой лезут два приложения - официант и бухгалтер. Официанта интересуют только счета. Бухгалтера - только продажи. Кто из них должен лезть в чужие ентити? Бухгалтер в счета официанта или официант в бухотчетность? А почему бы через триггер в базе не увеличить счётчик проданного кофе?

Если база сделана не под энтити, то черта с два ты их туда нормально засунешь.

Хибернейтом - геморройно. Что скорее говорит о качестве хибернейта. Ручками - без проблем.

А наоборот я набиваю классы(или строю УМЛ-диаграммы) и за 10 минут получаю готовую базу. Неделя экономии.

Ага. А потом три недели пытаемся оптимизировать запрос, для которого я пишу sql, отрабатывающий за 3 секунды, а хибернейт щелкает 3 часа если не вываливается с OutOfMemory. Получается проще 2 недели на базу и "ручной" доступ к ней потратить.


Надо сказать что я года с 2010 пытаюсь где только можно избегать хибернейта. Ну не работает такое общее решение в сложных приложениях. Его конфигурация становится чуть ли не самой сложной частью, которая ещё и с каждым bugfix-ом норовит сломаться. И в конце-концов всё равно пишем в самых критичных местах не hql а sql запросы. Ну и нафига тогда всё городить?

Но не всегда получается... Вот сейчас опять - нужна пакетная обработка порядка 10 миллионов записей. И всё написанное на хибернейте радостно хрюкает больше суток. Это уже знатоки хибернейта убили больше месяца на оптимизацию. Делаем триггер и вьюшку - опа, отрабатывает за 30 минут. Тоже плохо - часть бизнес-логики пришлось в бд пихать. Но уж лучше так.

 

Sprung zu