🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232398

Re: Symfony 4 - jak projektować bazę danych pod Doctrine?

#232398
From: ww
Date: Wed, 24 Apr 2019 06:20
50 lines
3363 bytes
W dniu 2019-04-23 o 17:13, Wojciech Bancer pisze:
> On 2019-04-23, ww <ww@o2.pl> wrote:
> 
> [...]
> 
>>> Myślę, że żaden ORM nie obsłuży triggerów.
>>
>> A w jaki sposób ORM miałby te triggery obsłużyć?
> 
> No obsługuje alternatywę, poprzez swoje zdarzenia.
> 
> Nie wiem w jaki sposób miałby to umożliwiać natywnie (czego chyba wymaga Marek S),
> biorąc pod uwagę niesamowity wręcz burdel i brak spójności w triggerach, pomiędzy
> różnymi typami baz.
> 
>> Bo ja ich używam do wielu rzeczy o których ORM kompletnie nie musi
>> wiedzieć.
> 
> To jest tak zwana zła praktyka. Potem inny programista siada i "rzeczy dzieją
> się magicznie". Zresztą jest to jeden z głównych powodów by nie używać triggerów
> (obok tego że to bazy danych są zazwyczaj najmniej skalowalnym i najwęższym
> gardłem systemu i nie należy go nadmiernie obciążać).

Znam wiele "dobrych praktyk", które niestety w nieidealnej 
rzeczywistości nie chcą się sprawdzać. Jeżeli dostajesz tony danych
to niestety czasem trzeba poświecić przejrzystość na rzecz wydajności.

> W świecie w którym możesz mieć "na zawołanie" 1000 funkcji / kontenerów robiących coś
> równolegle na infrastrukturze cloud, odpalanych w sekundy, ale np. tylko 1-2 serwery baz
> danych, to jest oczywiste że dużo bardziej skalowalne są te ostatnie i należy je odciążyć
> maksymalnie, a nie "dokładać" im niepotrzebnej tam roboty.

Niepotrzebnej tam roboty? U mnie triggery i procedury wbudowane robią 
zwykle rzeczy, które ze względu na optymalność muszą się odbywać jak 
najbliżej bazy, i tam właśnie są najoptymalniejsze.

>> I doctrine wspiera tworzenie różnych "nieporzenoszalnych"
>> elementów składni SQL pod dany silnik.
> 
> Nie tyle "wspiera" co "umożliwia".

To dokładnie to samo. Jeśli coś da się zrobić za pomocą wbudowanych
narzędzi to jest to wspierane.

> Ale koncept za jego rozwojem jednak jest taki, żeby nie dodawać rzeczy
> niekompatybilnych będących specyficznymi wyłącznie dla jednego
> z obsługiwanych dialektów, chyba że nie ma innego wyjścia (jak mamy
> np. w obsłudze primary keys i generation strategy.

Koncepty konceptami a życie życiem.
Technical Details
Message-ID: <5cc00030$0$476$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <5cbf10a8$0$482$65785112@news.neostrada.pl> <slrnqbuasg.28r5.wojciech.bancer@pl-test.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Symfony 4 - jak projektować bazę danych
 pod Doctrine?
Newsgroups: pl.comp.lang.php
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <5cbf10a8$0$482$65785112@news.neostrada.pl> <slrnqbuasg.28r5.wojciech.bancer@pl-test.org>
From: ww <ww@o2.pl>
Date: Wed, 24 Apr 2019 08:20:32 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <slrnqbuasg.28r5.wojciech.bancer@pl-test.org>
Lines: 50
Message-ID: <5cc00030$0$476$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 213.216.91.73
X-Trace: 1556086832 unt-rea-a-01.news.neostrada.pl 476 213.216.91.73:60533
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit