Dies ist eine Frage, die ich mir stelle, wenn ich mich neuen Projekten gegenueberstelle : Feldsammlung vs. Entitaetsreferenz + benutzerdefinierte Entitaet oder wenn die Struktur einfach ist: Feldsammlung vs. benutzerdefiniertes Feld mit mehreren Datenbankspalten / Multifeld . Hier ist meine Meinung, basierend auf meiner Erfahrung .
Multifield ist ein großartiges Konzept. Es wäre eine "schlanke" Version der Feldsammlung. Statt eine Entitätsstruktur mit Beziehungen zu erstellen, deckt es die einfachen Anwendungsfälle ab, ohne die Entität zu erstellen. Es gibt jedoch eine Reihe von Problemen , z. B. die nicht vollständige Integration von Features, die nicht wirklich mehrsprachig ist usw. (wenn Sie dies also vorhaben, sind Beiträge wahrscheinlich sehr willkommen).
Field Collection ist eine großartige Lösung, wenn Sie eine Site erstellen, die hier und da nur mit ein paar kleinen Änderungen durchgeführt werden kann. Es bietet Site-Erstellern ein leistungsstarkes Tool zum Erstellen komplexer Strukturen, ohne sich um die Interna kümmern zu müssen. Grundsätzlich wird eine Entität erstellt, die durch die IDs mit der "Host" -Entität in Beziehung steht, sodass Felder und alles hinzugefügt werden können. Die Nachteile bestünden in der Kenntnis der Interna der Feldsammlung, die Sie benötigen, um komplexe Vorgänge durchzuführen, z. B. die Verwaltung einer Feldsammlung mit einer Entitätsreferenz oder die Migration von Daten. Da es sich um ein generisches Tool handelt, wäre es ziemlich kompliziert, noch einen Schritt weiter zu gehen.
Eine andere Option, die Sie dort haben, ist die Verwendung von ECK mit Entity Reference, aber meine Erfahrung damit war bisher eine Katastrophe. Ich finde es einfacher, den Entitätstyp ohne den Helfer durch Code zu erstellen.
Es kommt darauf an, was Sie brauchen und was für Ihr Projekt am besten geeignet ist. Wenn Sie die Zeit und die Entwickler haben, Entitätstypen zu erstellen, die mit Ihrem Datenmodell über die Entitätsreferenz in Beziehung stehen, haben Sie mehr Kontrolle darüber, was passiert Ihre Datenstrukturen, aber dann sind Sie auch "verantwortlich" dafür.
Nach einer Weile des Testens mit allen oben beschriebenen Lösungen entscheiden wir uns in meinem Team immer für die Entitätstypen + ER, aber ich sehe, dass Field Collection für kleine Projekte ohne Datenmigration oder komplizierte i18n-Einrichtung der schnellste Weg ist gehen.
Es hängt wirklich von den Daten ab, die Sie in die Felder eingeben, und von der Verwendung, die Sie damit machen möchten.
Wenn Sie Field Collection verwenden möchten, stellen Sie sicher, dass Sie von normalen Ansichten über Übersetzungen und solr-Indizierungen usw. alles tun können, was sich in Ihrem Bereich befindet.
Wenn Sie die Informationen, die Sie einer Feldsammlung hinzufügen, wiederverwenden möchten, ist es besser, einen Inhaltstyp oder eine benutzerdefinierte Entität zu verwenden. Beispiel: Ein Schulkurs hat 5 Themen. Ein Thema enthält 3 Felder: Titel, Stunden und Stufe. Wenn Sie Themen in mehreren Schulkursen wiederverwenden möchten, wählen Sie einen Inhaltstyp / eine benutzerdefinierte Entität und verwenden Sie die Entitätsreferenz.
quelle
Ihre Leistung sollte in etwa gleich sein, die Feldsammlung verwendet jedoch die Entity-API und erfordert nicht die Erstellung eines benutzerdefinierten Inhaltstyps.
quelle