Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #16207
| Newsgroups | pl.comp.lang.php |
|---|---|
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
| Subject | Re: Symfony 4 - jak projektować bazę danych pod Doctrine? |
| References | (6 earlier) <5cc08eba$0$523$65785112@news.neostrada.pl> <slrnqc1a43.2amm.wojciech.bancer@pl-test.org> <5cc0de68$0$539$65785112@news.neostrada.pl> <slrnqc42f0.2lii.wojciech.bancer@pl-test.org> <5cc24956$0$526$65785112@news.neostrada.pl> |
| Organization | None |
| Date | 2019-04-26 10:17 +0200 |
| Message-ID | <slrnqc5fkk.27vm.wojciech.bancer@pl-test.org> (permalink) |
On 2019-04-25, Kviat <Kviat> wrote: [...] >> Ciachnąłem, bo dyskutujemy o dwóch różnych światach. > Myślałem, że dyskutujemy o triggerach/sp. Tak, dyskutujemy, ale wszystko ma jakiś kontekst. Tutaj raczej domyślnie należy założyć że nie dyskutujemy o aplikacji desktopowej (skoro mowa o Symfony i Doctrine). >> To co pisałem o triggerach odnosiło się do świata serwerowo-webowego, >> nie do desktopowych aplikacjach klienckich przeznaczonych do działania >> w intranecie. > > Twoją wypowiedź odebrałem tak, że triggery/sp są złe bo są złe, > niezależnie od "świata". Ale ja podałem argumenty dlaczego są złe, a nie "bo są złe". Natomiast można założyć, że w świecie o którym mówisz, ze względu na niewielkie rozproszenie i małą skalę są to wady nieistotne. [...] > Nazwałeś to legacy, bo akurat siedzisz tam gdzie siedzisz. > To, że zajmujesz się akurat taką, a nie inną działką, nie czyni działek > którymi się nie zajmujesz legacy. Semantyka. Wady triggerów pozostają ich wadami, ale w warunkach "desktopowych" nie wymyślono jeszcze zgrabnego rozwiązania, więc się one utrzymują. >> W systemach webowych (including PHP) zastąpione przez tworzenie aplikacji >> nadrzędnej/API, a nie przez radosne udostępnianie portu 3306 całemu >> światu i myślałem że to oczywiste że rozmawiamy współczesnych systemach >> webowych. > > Systemy webowe, to nie tylko html i js w przeglądarce + php. Tak, wiem. Podałem Ci też przykład aplikacji mobilnych. Nadal. > W aplikacjach webowych, a ściślej: przeglądarkowych, jesteś właściwie > skazany na warstwę pośrednią jaką jest np. php w dostępie do bazy > danych. Ależ wodzu, co wódż? Otwieramy port 3306/5432 i jedziesz. > Na drodze: przeglądarka->baza danych, to właśnie php pełni > niejako naturalną rolę api dla aplikacji "przeglądarkowej". > Nie ma innego sposobu. Nie możesz tego zrobić jedynie dlatego że przeglądarki wprowadzają ograniczenia w komunikacji, a nie dlatego że to niemożliwe w języku (patrz https://github.com/sindresorhus/awesome-nodejs#database ). Jakby consensus środowiska był taki, że bezpośrednia praca z DB "to jest to", to przeglądarki nie miałyby takich ograniczeń. W electronie (taki chrome embedded) tych ograniczeń nie masz i z poziomu takiej przeglądarki możesz korzystać z ww modułów i słać zapytania do bazy bezpośrednio [1]). [...] > Te wszystkie dywagacje, czy z api czy bez api, czy przez internet czy > nie przez internet, czy to php czy tcl (btw. w tcl jeszcze parę lat > temu, całkiem niedawno, był robiony portal polska.pl), nie mają nic > wspólnego z tym, czy triggery/sp są użyteczne (potrzebne) czy nie są. A > już tym bardziej czy są dobre czy złe. Oczywiście że mają. Już pisałem, serwery baz, są elementem który się *najtrudniej* skaluje "wszerz" (i wielokrotnie pisałem o jakiej wydajności piszę - nie o jako tej rozumianej przez umiejętność obsługi dużych grup użytkowników i stosunkowo łatwy/automatyczny mechanizm skalowania tego). A zarówno master-slave, czy partycjonowanie wprowadzi takie same opóźnienia triggerów (czyli eliminuje ich jedyną, "zaletę" szybkości komunikacji), bez eliminowania wad triggerów. >> Jak masz merytoryczne argumenty dlaczego we współczesnym systemie webowym >> trigger byłby lepszy w użyciu od API, to chętnie posłucham, > > Przykład podałem w poprzednim poście. Najprostszy z możliwych z > aktualizacją pola stanu magazynowego po dodaniu/zmianie/skasowaniu > rekordu z towarem. I jak myślisz, jak Ci to zadziała na sklepie wielkości Amazona? > Nie twierdzę że zawsze i wszędzie jest lepszy. Twierdzę, że są takie > sytuacje, że jest lepszy. Silnik bazy danych zrobi to szybciej i pewniej > niż najbardziej wypasione api. Piszemy o różnych rodzajach wydajności. > Szczerze mówiąc, kompletnie nie rozumiem idei implementowania takiej > operacji w api, skoro sam silnik bazy danych to może zrobić (o > implementowaniu tego w aplikacji klienckiej w ogóle nie wspominam). Ja też nie wspominam o aplikacjach klieckich, więc bądź łaskaw nie używać argumentów, których nie stosowałem. [...] > W ten sposób można dojść do wniosku, że niepotrzebnie bazie danych zleca > się pilnowanie relacji między tabelami i niepotrzebne są pola primary > key i foreign key, czy on delete cascade itd, bo przecież to samo może > robić api... O popatrz. I zaraz odkryjesz dlaczego mongodb w ostatnich latach stało się tak popularne. :) A jak pogrzebiesz trochę dalej, to zobaczysz dlaczego coś takiego jak elasticsearch ma raację bytu. I dlaczego ostatnio dodawane do platform cloud zarządzalne przez providera bazy cloud (Amazon DynamoDB, Google Firebase, Azure CosmosDB) są właśnie bazami nie-relacyjnymi, na których nie odpalisz wbudowanych triggerów. Dlaczego google używa baz nierelacyjnych do swoich wyszukiwarek (bigtable) https://cloud.google.com/bigtable/ We wszystkich przypadkach odpowiedź jest taka sama: tradycyjne serwery sql "nie wyrabiają" i nie potrafią sprostać potrzebom. > Tylko po co w takim razie implementują te bajery w kombajnach > bazodanowych i bez sensu tymi nikomu niepotrzebnymi, wręcz złymi > rzeczami jakimi są triggery/sp, zaśmiecają maszyny, zamiast dać proste > składowisko danych, a o resztę niech się martwi maszyna z api... Tam gdzie naprawdę musisz mieć skalowalne rozwiązanie, to właśnie tak jest. I nie jedna "maszyna z API". Wrzucę kod na: https://cloud.google.com/functions/ https://aws.amazon.com/lambda/ i w zależności od zapotrzebowania dostanę od 1 do 1000 instancji, albo i więcej. Bez robienia czegokolwiek. Albo (jak potrzebujesz) jesteś w stanie udostępniać dane klientom w czasie rzeczywistym bez potrzeby odpytywania przez klienta: https://firebase.google.com/docs/database/ Tego wszystkiego nie zrealizujesz w tracydyjnym modelu SQL, nie dlatego że pojedyncze bajtowe operacje są mniej/bardziej wydajne, tylko dlatego że jest to narzędzie o niewielkiej skalowalności. -- Wojciech Bańcer wojciech.bancer@gmail.com
Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-20 20:27 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-21 14:25 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-21 17:34 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-21 19:49 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-22 20:58 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-22 21:14 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-22 23:18 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-23 08:26 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-23 18:37 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-23 19:21 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-23 22:01 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-23 22:31 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Roman Tyczka <noemail@because.no> - 2019-04-24 08:54 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-24 09:20 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? ww <ww@o2.pl> - 2019-04-23 15:18 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-23 17:13 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? ww <ww@o2.pl> - 2019-04-24 08:20 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-24 15:13 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-24 18:28 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-24 20:18 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-25 00:08 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-25 21:26 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-26 01:57 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 10:17 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-26 12:58 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 17:18 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-26 20:04 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 23:26 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-26 20:09 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 22:26 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-27 10:27 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-27 13:58 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-27 15:39 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-27 16:44 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Roman Tyczka <noemail@because.no> - 2019-04-28 13:16 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-28 14:18 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Kviat - 2019-04-28 15:06 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-28 15:31 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-26 11:21 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 13:16 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-23 19:10 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-23 19:51 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-23 22:10 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-23 22:38 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-24 19:03 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-24 21:19 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-25 22:49 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-26 01:50 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-26 23:58 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-30 15:35 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-23 22:47 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-24 19:29 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-24 20:01 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-25 23:14 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-26 09:32 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-27 00:37 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-28 14:50 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-30 01:16 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-04-30 10:38 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? ww <ww@o2.pl> - 2019-04-24 08:24 +0200
Re: Symfony 4 - jak projektować bazę danych pod Doctrine? Marek S <precz@spamowi.com> - 2019-04-24 19:41 +0200
csiph-web