🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195691

Re: PostgreSQL - trigger pomija instrukcje

#195691
From: Marek S
Date: Thu, 07 Nov 2019 19:06
36 lines
2983 bytes
W dniu 2019-11-06 o 21:54, Adam M pisze:

> 
> Wkładanie logiki biznesowej na triggery to bardzo niebezpieczna zabawa - takie rozwiązania stosowało się epoce SQLa łupanego ;-) - prosciej i bezpieczniej przenieść logikę na middleware.


Tak, wiem, że niebezpieczna. Dlatego 15x to testuję zanim udostępnię.

Owszem, obecnie zwykle przenosi się logikę tego typu do ORMów, a nawet 
widziałem raz sortowanie wykonane w PHP (!!!) w imię przenoszenia 
wszystkiego, co możliwe do wykonania na bazie poza nią. Zauważam, że 
zapanowała wielka awersja do używania baz danych. Zdarza się nawet, że 
obiekty danych trzyma się w formie plików na dysku (patrz Pimcore). Ja 
jednak będę trzymał się w/w rozwiązań. Właśnie jestem świadkiem początku 
upadku sporego przedsięwzięcia - przed czym, u zarania projektu, 
przestrzegałem team. Oni ślepo ufają nowoczesnym rozwiązaniom, jakie 
proponujesz. W efekcie, przy ok 25 mln rekordów w bazie, niektóre proste 
operacje potrafią trwać po kilka minut (klient tyle musi czekać na 
response interfejsu) zamiast kilkadziesiąt milisekund. Przenoszenie 
projektu na super wydajne serwery (hosting parę tys. $), stosowanie 
loadbalacera - odsunęło problem w czasie. Osobiście wygodny ORM stosuję 
tylko tam, gdzie nie może zaszkodzić bardzo: chyba tylko obsługa 
formularzy. Zaczynam przenosić rozwiązania nowoczesne, na łupany SQL i 
już w tej chwili zyskuję min. trzy rzędy wielkości krótsze czasy 
realizowanych operacji.

Jednakże mimo wszystko nie zgodzę się z Tobą, że stosowanie procedur 
składowych w bazie to przestarzałe podejście. Wręcz przeciwnie: widuję w 
korporacjach działy administratorów baz danych, którym wręcz zleca się 
realizowanie procedur składowych, z których korzystają programiści. 
Programiści nie muszą być świadomi nawet tego, że jakąś kolumnę 
przeniesiono z jednej tabeli do innej.

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <qq1pv0$5et$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
References: <qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.bazy-danych
Subject: Re: PostgreSQL - trigger pomija instrukcje
Date: Thu, 7 Nov 2019 20:06:06 +0100
Organization: ICM, Uniwersytet Warszawski
Lines: 36
Message-ID: <qq1pv0$5et$1@news.icm.edu.pl>
References: <qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com>
NNTP-Posting-Host: 89-77-183-104.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1573153568 5597 89.77.183.104 (7 Nov 2019 19:06:08 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Thu, 7 Nov 2019 19:06:08 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1
In-Reply-To: <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit