Форум → Разработка → Базы данных → Бизнес-логика в БД (процедура и/или триггер)
Бизнес-логика в БД (процедура и/или триггер)
Страницы: ← Следующая страница →
-
Доброго.
Имеем БД. С кучкой приложений.
Бизнес-логику запихиваем по максимуму в БД (триггеры/процедуры и т.д. и.т.п.) Дабы никто корявыми руками не поверг данные в Хаос.
Используем свою систему разграничений прав на записи.
Просмотр данных - через view (чтобы спрятать не положенные юзеру записи)
Изменения - через процедуры.
И тут вопрос … как органично распределить код между триггерами и процедурами.
Куда что?
В процедуры только контроль доступа, а в триггеры ссылочную целостность и корректность данных.
Или уйти от триггеров? (всё одно изменения в процедурах проходят. В них и следить толком, что и куда меняем)
Или обернуть update/insert в процедуры, а проверки убрать в триггеры?
Где она - золотая середина? -
15 мая 2009 г. 15:25, спустя 15 минут 46 секунд
Не могу особо ничего посоветовать, не мой принцип.
Объясните и по возможности убедите что это удобно - может и порассуждаем.https://smappi.org/ - платформа по созданию API на все случаи жизни -
15 мая 2009 г. 15:41, спустя 16 минут 18 секунд
все в тригеры и вью - ахуенно если у вас несколько языков программирования реализуют одну бизнес логику, чтобы не переписывать весь код, а только вызывать процедуры бд и выводить на экран.
в другом случае имхо на пхп все это разделять куда удобнее, ведь ТСКЛ как бы не для этого)Сапожник без сапог -
15 мая 2009 г. 16:33, спустя 51 минуту 38 секунд
Имеем БД.
С ней работают несколько разных клиентских приложений. (в том числе и тонкий клиент через WEB)
Дабы в каждом из не напрягаться реализацией бизн.-логики - всю её запихиваем в БД.
Теперь, даже, подключившись простым менеджером БД … юзер не сможет натворить там делов - только в пределах дозволенного.
При обновлениях в бизн-логике/структуре и т.п. в большинстве случаев не нужно пересобирать все клиентские приложения.
-
15 мая 2009 г. 16:54, спустя 20 минут 51 секунду
Я вообще про такой подход слышал больше относительно ASP. И судя по объяснениям, я понял, что таким макаром гибкость приложения страдает + появляется зависимость от конкретных разработчиков. Я сильно ошибаюсь? -
15 мая 2009 г. 16:54, спустя 16 секунд
круто. так и надо в расширяемых сайтах, жаль что так не делают в 95% ситуаций
Имеем БД.
С ней работают несколько разных клиентских приложений. (в том числе и тонкий клиент через WEB)
Дабы в каждом из не напрягаться реализацией бизн.-логики - всю её запихиваем в БД.
Теперь, даже, подключившись простым менеджером БД … юзер не сможет натворить там делов - только в пределах дозволенного.
При обновлениях в бизн-логике/структуре и т.п. в большинстве случаев не нужно пересобирать все клиентские приложения.
Сапожник без сапог -
15 мая 2009 г. 16:55, спустя 30 секунд
сильно. хотя тут больше зависит от реализации + от требований системы
Я вообще про такой подход слышал больше относительно ASP. И судя по объяснениям, я понял, что таким макаром гибкость приложения страдает + появляется зависимость от конкретных разработчиков. Я сильно ошибаюсь?Сапожник без сапог -
15 мая 2009 г. 16:57, спустя 2 минуты 43 секунды
это как раз из серии рассуждений модель контроллер и тп.
так вот модель она вся в бд лежит, ты
$news = new News();
while($item = $news->getItem())
{
echo …
}
мы получаем нечто
$items = $db->exec("News_getItem");
while($item = $item->fetch())
{
echo …
}
и вот второй то вариант уже становится независимым от языка реализации, то есть что на пхп это так, что на асп, что на перле, что на си. хоть на чемСапожник без сапог -
15 мая 2009 г. 17:04, спустя 6 минут 44 секунды
Немного понял, спасибо. Но все равно что-то не вдупляю пока до конца. Ну и хер пока на него :) -
15 мая 2009 г. 17:08, спустя 4 минуты
ты просто не писал приложения, которые необходимо реализовать больше чем на одном языке программирования видимо))
Немного понял, спасибо. Но все равно что-то не вдупляю пока до конца. Ну и хер пока на него :)
вот представляешь если бы в 1с все было в процедурах?
тогда из пхп было бы легко
$items = $db->exec("GetSkladOstatki",$now); и никакой ебли с ксв и тпСапожник без сапог -
15 мая 2009 г. 17:12, спустя 3 минуты 35 секунд
helldude, если бы 1С было бы с процедурами, то тут точно можно бы было йопнутсо, та как там и без онных хватает пиздеца ))) -
15 мая 2009 г. 17:13, спустя 1 минуту 45 секунд
ты не понял фишки, если бы это было все процедуры, то пизздеца небыло бы при переносе логики, ат оя посмотрел в функцию формирования остатков и понял что проще 1с покурить мануалы, чем попробовать на пхп это повторить ))))
helldude, если бы 1С было бы с процедурами, то тут точно можно бы было йопнутсо, та как там и без онных хватает пиздеца )))Сапожник без сапог -
15 мая 2009 г. 17:50, спустя 36 минут 16 секунд
ты просто не писал приложения, которые необходимо реализовать больше чем на одном языке программирования видимо))
Немного понял, спасибо. Но все равно что-то не вдупляю пока до конца. Ну и хер пока на него :)
….
Сложно пример придумать…
Имеем две таблицы "гулянка" и "участники гулянки".
Гулянка может иметь статусы "набор окончен", "деньги собраны" и т.д.
Учтите … с этими таблицами работают различные приложения …
и Вася Пупкин, который подключился к базе напрямую и добавил себя в участники гулянки, когда на ней статус висел "Деньга собрана".
И началось … стаканов не хватает, тапочек тоже … все трезвые домой пошли.
А вот если добавление участника сделано было через хранимую процедуру (и вообще ни у кого, кроме этой процедуры, нет прав на доб. в эту таблицу), то она бы усекла, что Вася пытается лезть куда ему не нужно .. и его отфуболила бы … и настучать могла бы куда надо (лог-таблица).
helldude, тут не сильно и важно к-во языков реализации … тут кайф, что всё переделывать не нужно :-) -
15 мая 2009 г. 17:51, спустя 1 минуту 46 секунд
нехуй васе пупкину давать права на бд в любом виде.
ты просто не писал приложения, которые необходимо реализовать больше чем на одном языке программирования видимо))
Немного понял, спасибо. Но все равно что-то не вдупляю пока до конца. Ну и хер пока на него :)
….
Сложно пример придумать…
Имеем две таблицы "гулянка" и "участники гулянки".
Гулянка может иметь статусы "набор окончен", "деньги собраны" и т.д.
Учтите … с этими таблицами работают различные приложения …
и Вася Пупкин, который подключился к базе напрямую и добавил себя в участники гулянки, когда на ней статус висел "Деньга собрана".
И началось … стаканов не хватает, тапочек тоже … все трезвые домой пошли.
А вот если добавление участника сделано было через хранимую процедуру (и вообще ни у кого, кроме этой процедуры, нет прав на доб. в эту таблицу), то она бы усекла, что Вася пытается лезть куда ему не нужно .. и его отфуболила бы … и настучать могла бы куда надо (лог-таблица).
helldude, тут не сильно и важно к-во языков реализации … тут кайф, что всё переделывать не нужно :-)Сапожник без сапог -
21 мая 2009 г. 17:35, спустя 5 дней 23 часа 43 минуты
А как мне тогда Васю в Базу пускать? Логин его и пароль тоже … шо ж я с ним поделать смогу?!
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!