Article View: pl.comp.lang.php
Article #232398Re: Symfony 4 - jak projektować bazę danych pod Doctrine?
From: ww
Date: Wed, 24 Apr 2019 06:20
Date: Wed, 24 Apr 2019 06:20
50 lines
3363 bytes
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-mailReferences:
<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