Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #15956

Laravel ORM czy SQL?

From Marek S <precz@spamowi.com>
Newsgroups pl.comp.lang.php
Subject Laravel ORM czy SQL?
Date 2018-12-25 14:54 +0100
Organization ATMAN - ATM S.A.
Message-ID <pvtcr2$dl3$1@node2.news.atman.pl> (permalink)

Show all headers | View raw


Witam,

Próbuję przekonać się do ORM. Ponoć jest to szybsze i wygodniejsze. Być 
może gdy robimy jakiegoś prostego inserta do jednej tabeli i czy 
selecta. Jednakże tu też mam wątpliwości czy jest to faktycznie szybsze 
niż pisanie w SQL. Nie bardzo potrafię zainfekować się tą ideą. Oto moje 
wątpliwości:

1. Pracując w ORM musimy nauczyć się SQL raz jeszcze - od nowa. Jest on 
zapisany w języku PHP za pomocą funkcji. Pytanie: po co? Jest z tego 
jakaś korzyść? W dodatku łapię się na tym, że staram się przekładać w 
myślach to co piszę w ORM na język zapytania SQL jakie z tego może 
powstać by uzyskać efektywność wykonania złożonego zapytania. Tymczasem 
szybciej byłoby zwyczajnie w SQL skrobnąć to samo zapytanie zamiast 
kombinować.

2. W ORM tracimy w pewnym zakresie kontrolę nad tym jaki SQL z tego się 
wytworzy. Nie wiem czy jest inny sposób monitorowania wygenerowana SQL 
przez ORM jak grzebanie w logach bazy danych - co mocno komplikuje 
development. Nie wiem czy da się zmusić ORM do generowania optymalnych 
struktur SQL charakterystycznych dla konkretnej bazy danych. Np. z tego 
co pamiętam, w MySQL JOINny mogły mieć tylko 1 argument a w niektórych 
przypadkach w PostgreSQL JOINy z wieloma argumentami potrafiły 
dramatycznie zwiększyć wydajność zapytania. Oczywiście to tylko jest 
przykład ad hoc. Zapewne jeśli się zastanowić, to wiele sytuacji można 
wymyślić.

3. Przy tworzeniu większych systemów rzadko zdarza się, że pracujemy z 
jedną tabelą w sensie aktualizacji zawartości. Np. aby móc zrobić 
inserta z kompletem potrzebnych danych, to nierzadko zachodzi potrzeba 
wydobycia informacji z innych tabel, przeliczenie czegoś tam i w 
zależności od wyników zmodyfikowanie rekordów w tej i innych tabelach. 
Tak więc traktowanie ORM jako "rekordu w pojedynczej tabeli" jest mocnym 
ograniczeniem. Model i tak musi grzebać w całym ekosystemie bazy danych.

Jedyna korzyść jaką dostrzegam, to możliwość przenoszenia projektów 
między jedną z 4 baz danych jaką Laravel obsługuje. Ale czy to jest 
faktycznie takie istotne? Zazwyczaj nie ma potrzeby zmiany bazy.

-- 
Pozdrawiam,
Marek

Back to pl.comp.lang.php | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-25 14:54 +0100
  Re: Laravel ORM czy SQL? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-26 17:50 +0100
    Re: Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-26 21:28 +0100
      Re: Laravel ORM czy SQL? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-26 23:26 +0100
        Re: Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-27 22:05 +0100
          Re: Laravel ORM czy SQL? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-27 22:12 +0100
            Re: Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-28 22:28 +0100
              Re: Laravel ORM czy SQL? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-28 22:48 +0100
                Re: Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-28 23:29 +0100
                Re: Laravel ORM czy SQL? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-29 00:03 +0100
                Re: Laravel ORM czy SQL? Marek S <precz@spamowi.com> - 2018-12-29 21:23 +0100
                Re: Laravel ORM czy SQL? irq <ipluta62@gmail.com> - 2019-01-06 04:05 -0800

csiph-web