Heim  >  Artikel  >  Backend-Entwicklung  >  Laravel Query Builder DB oder ORM

Laravel Query Builder DB oder ORM

WBOY
WBOYOriginal
2016-08-04 09:21:111540Durchsuche

Was ist der Unterschied zwischen den beiden und in welchen Szenarien sollte jedes verwendet werden?

Antwortinhalt:

Was ist der Unterschied zwischen den beiden und in welchen Szenarien sollte jedes verwendet werden?

Alle unsere Vorgänge werden über ORM ausgeführt, da der Vorgang einfach, intuitiv und leicht zu warten ist. Die Leistung ist geringer, aber nicht zu schwerwiegend. Wenn eine echte Parallelitätsoptimierung vorliegt, kann die Verwendung von DB das Problem möglicherweise nicht lösen. Sie müssen immer noch die Bedeutung jeder Methode im ORM verstehen, sonst erhalten Sie möglicherweise versehentlich viel mehr SQL. Fügen Sie beispielsweise beim Abrufen der Liste nicht nur Beziehungen hinzu, um andere Inhalte abzurufen gemeinsamer Tisch.

Ich habe Laravel noch nie verwendet, aber ich glaube, ich verstehe, dass DB direkt SQL schreibt, um die Datenbank zu betreiben, während ORM Objekte verwendet, um die Datenbank zu betreiben.

Sie können SQL oder ORM verwenden, um die Datenbank zu betreiben. SQL ist die Abfragesprache relationaler Datenbanken, und relationale Datenbanken sind ein Muss. Allerdings bevorzugt die Programmentwicklung derzeit das OOP-Denken, da es über eine menschlichere Ausdruckskraft verfügt, während SQL nicht so ausdrucksstark ist wie OOP. Eine Sprache mit besserer Ausdruckskraft ist für den Menschen besser geeignet, die Codelogik zu organisieren. Eine Sprache mit mehr Ausdruckskraft wird die Gesamtentwicklungseffizienz qualitativ optimieren, der Code wird robuster sein und es wird weniger Fehler geben.

Das Debuggen großer SQL-Abschnitte ist nicht einfacher als das Debuggen mit ORM, und ORM kann im Allgemeinen zwischen verschiedenen Datenbanken wechseln. Dies sind die Vorteile von ORM. Ein robustes System sollte ORM verwenden, das durch Fehler verursachte Fehler auf niedriger Ebene effektiv vermeiden kann. Der ORM-Code ist jedoch nicht einheitlich. Sie sind mit seinem ORM in Laravel vertraut und können nicht direkt in anderen Frameworks verwendet werden.

Wenn Sie noch nicht lange in der Branche tätig sind und ein Neuling sind, verwenden Sie SQL so oft wie möglich, da SQL unweigerlich verwendet wird und ein tiefes Verständnis von SQL erforderlich ist als Praxis betrachtet. Wenn Sie das Gefühl haben, bereits Erfahrung zu haben, verwenden Sie ein ORM, das die Fehlerquote reduzieren kann.

Es wird empfohlen, die DB-Fassade zum direkten Betrieb der Datenbank zu verwenden, da die ORM-Leistung gering ist.

Für Datenabfragen ist ORM nicht schlechter als DB und verwendet beispielsweise die grundlegendste SQL-Split-Anweisungsoptimierung. Der Verlust von ORM erfolgt nur auf Codeebene, was kein Problem mehr darstellt.

ORM eignet sich für Abfragen allgemeiner bis mittlerer Komplexität und eignet sich auch für verschiedene Modelloperationen. Wenn Sie beispielsweise ein relationales Ziel haben, können Sie targets()->delete() usw. direkt verwenden Führen Sie relationale Datenoperationen durch.
Das sanfte Löschen in ORM, die automatische Aktualisierung von Zeitfeldern, der Feldschutz und die Feldtypkonvertierung werden Ihnen in einigen standardisierten und systematischen Projekten von Vorteil sein.

Zusätzlich zu DB-Szenarien: Einige komplexere Abfrageanweisungen, Transaktionsvorgänge usw. müssen von der DB abgeschlossen werden.

DB ist hauptsächlich ein Abfrage-Builder (SQLBuilder), der Ihnen hilft, die Eingabeparameter in SQL-Anweisungen für die Abfrage in der Datenbank umzuwandeln. Es ist im Wesentlichen dasselbe, als würden Sie selbst SQL-Anweisungen schreiben.
ORM ist ein objektrelationales Mapper-Tool, das Daten in der Datenbank in Objekte und Sammlungsobjekte zuordnet. Sie müssen die zugrunde liegenden Daten nicht berühren und können die zugeordneten Objekte direkt zur Entwicklung aufrufen.

DB eignet sich für Projekte mit hohen Leistungsanforderungen oder einfacher Geschäftslogik und ORM eignet sich für Projekte mit komplexer Geschäftslogik.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn