Article View: pl.comp.lang.php
Article #232432Re: Symfony 4 - jak projektować bazę danych pod Doctrine?
From: Wojciech Bancer
Date: Tue, 23 Apr 2019 20:47
Date: Tue, 23 Apr 2019 20:47
62 lines
3544 bytes
3544 bytes
On 2019-04-23, Marek S <precz@spamowi.com> wrote:
> W dniu 2019-04-23 o 19:51, Borys Pogoreło pisze:
>
>> Zdecyduj się - albo chcesz mieć uniwersalny mechanizm albo narzędzie
>> dedykowane funkcjom specyficznym dla Postgresa.
>
> Chcę mieć ORM wspierający specyfikę Postgresa. Inne bazy mnie nie
> interesują. Nie zabiegam o kompatybilność z ubogimi krewnymi. Absolutnie
> nie to jest moim celem.
Ale po co Ci ORM w takim razie?
Może chcesz mieć coś w tym stylu:
http://www.pomm-project.org/
>
>> Jeśli tak potrzebujesz tego polimorfizmu, to znajdź sobie coś do Postgresa,
>> bo znów będziesz narzekać na ograniczenia, które sam wprowadzasz.
>
> Nie rozumiem? Co to jest "coś" do Postgresa? Masz na myśli dedykowany
> ORM? Nie da się Doctrine tak oprogramować, by korzystała z ficzerów
> Postgresa?
Dać to się wszystko da, kwestia czasu i środków.
Ale jak dotychczas chyba nie było zapotrzebowania, bo nic tego typu
opensource nie powstało (albo nie zostało wystarczająco rozreklamowane).
Doctrine ma kompatybilność jako cel nadrzędny, więc może jednak ten
ORM nie jest dla Ciebie?
>>> Jakoś nie chce mi się wierzyć aby ORM nie potrafił zwyczajnie usunąć
>>> rekordu z bazy i w tym celu generował nadmiarowe zapytania. Przekopałem
>>> dokumentację Doctrine i nie znalazłem odpowiedzi.
>>
>> Rozwiń skrót ORM. Z założenia operacje wykonujesz na obiekcie.
>
> A mimo wszystko tenże ORM pozwala na użycie SQL'a w ramach własnych
> struktur... Tyle tylko, że samemu trzeba te parę linijek kodu
> niepotrzebnie dopisywać.
No to po co Ci ORM jak chcesz używać SQLa?
>> Laravel ma dodatkową metodę statyczną Model::destroy($id).
> No ale my o Doctrine... Z Laravelem już się pożegnałem.
Da się i w doctrine, z użyciem query buildera.
https://stackoverflow.com/questions/15555042/doctrine-2-delete-with-query-builder (pierwsza odpowiedź)
Można też użyć PartialObject / PartialReference:
https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/partial-objects.html
$reference = $em->getPartialReference('MyApp\Domain\User', 1);
---
Partial references are objects with only the identifiers set as they are passed to the
second argument of the getPartialReference() method. All other fields are null.
---
Działa przy różnego rodzaju joinach, czy update, może zadziałać i tu.
--
Wojciech Bańcer
wojciech.bancer@gmail.com
Technical Details
Message-ID:
<slrnqbuueh.2ui0.wojciech.bancer@pl-test.org>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-02.news.neostrada.pl!unt-spo-a-02.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> <q9ngu2$rla$1@node2.news.atman.pl> <szccfmi95el5$.xlp4ie6tp398.dlg@40tude.net> <q9nrgf$d0c$1@node1.news.atman.pl>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-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Newsgroups: pl.comp.lang.php From: Wojciech Bancer <wojciech.bancer@gmail.com> Subject: Re: Symfony 4 - jak projektować bazę danych pod Doctrine? References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <5cbf10a8$0$482$65785112@news.neostrada.pl> <q9ngu2$rla$1@node2.news.atman.pl> <szccfmi95el5$.xlp4ie6tp398.dlg@40tude.net> <q9nrgf$d0c$1@node1.news.atman.pl> Organization: None Date: Tue, 23 Apr 2019 22:47:13 +0200 User-Agent: slrn/1.0.3 (Darwin) Mime-Version: 1.0 Message-ID: <slrnqbuueh.2ui0.wojciech.bancer@pl-test.org> Lines: 62 NNTP-Posting-Host: 46.227.242.29 X-Trace: 1556052434 unt-rea-b-01.news.neostrada.pl 500 46.227.242.29:62114 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit