Man kann mit Sicherheit sagen, dass das EAV / CR- Datenbankmodell schlecht ist. Das gesagt,
Frage: Welches Datenbankmodell, welche Datenbanktechnik oder welches Datenbankmuster sollte verwendet werden, um mit "Klassen" von Attributen umzugehen, die E-Commerce-Produkte beschreiben, die zur Laufzeit geändert werden können?
In einer guten E-Commerce-Datenbank speichern Sie Klassen von Optionen (z. B. TV-Auflösung, dann eine Auflösung für jedes Fernsehgerät, aber das nächste Produkt ist möglicherweise kein Fernsehgerät und hat keine "TV-Auflösung"). Wie speichern Sie sie, suchen effizient und ermöglichen Ihren Benutzern, Produkttypen mit variablen Feldern einzurichten, die ihre Produkte beschreiben? Wenn die Suchmaschine feststellt, dass Kunden normalerweise nach Fernsehgeräten suchen, die auf der Konsolentiefe basieren, können Sie Ihren Feldern Konsolentiefe hinzufügen und dann zur Laufzeit für jeden TV-Produkttyp eine einzige Tiefe hinzufügen.
Gute E-Commerce-Apps haben eine nette gemeinsame Funktion, bei der sie eine Reihe von Produkten anzeigen. Dann gibt es "Drilldown" -Seitenmenüs, in denen Sie "TV-Auflösung" als Kopfzeile sehen können, und die fünf häufigsten TV-Auflösungen für die Set gefunden. Wenn Sie auf eines klicken, werden nur Fernsehgeräte mit dieser Auflösung angezeigt, sodass Sie einen weiteren Drilldown durchführen können, indem Sie im Seitenmenü andere Kategorien auswählen. Diese Optionen sind die dynamischen Produktattribute, die zur Laufzeit hinzugefügt werden.
Weitere Diskussion:
So lange Rede, kurzer Sinn, gibt es im Internet Links oder Modellbeschreibungen, die das folgende Setup "akademisch" beheben könnten? Ich danke Noel Kennedy für den Vorschlag einer Kategorietabelle, aber der Bedarf ist möglicherweise größer. Ich beschreibe es unten anders und versuche, die Bedeutung hervorzuheben. Möglicherweise benötige ich eine Blickwinkelkorrektur, um das Problem zu lösen, oder ich muss mich eingehender mit dem EAV / CR befassen.
Ich liebe die positive Resonanz auf das EAV / CR-Modell. Meine Entwicklerkollegen sagen alle, was Jeffrey Kemp unten angesprochen hat: "Neue Entitäten müssen von einem Fachmann modelliert und entworfen werden" (aus dem Zusammenhang gerissen, lesen Sie seine Antwort unten). Das Problem ist:
- Entitäten fügen wöchentlich Attribute hinzu und entfernen sie
(Suchschlüsselwörter bestimmen zukünftige Attribute) - Wöchentlich kommen neue Einheiten hinzu
(Produkte werden aus Teilen zusammengesetzt). - alte Entitäten verschwinden wöchentlich
(archiviert, weniger beliebt, saisonal)
Der Kunde möchte den Produkten aus zwei Gründen Attribute hinzufügen:
- Abteilungs- / Stichwortsuche / Vergleichstabelle zwischen ähnlichen Produkten
- Konfiguration des Verbraucherprodukts vor dem Auschecken
Die Attribute müssen eine Bedeutung haben, nicht nur eine Stichwortsuche. Wenn sie alle Kuchen vergleichen möchten, die einen "Schlagsahne-Zuckerguss" haben, können sie auf Kuchen klicken, auf das Geburtstagsthema klicken, auf Schlagsahne-Zuckerguss klicken und dann alle Kuchen überprüfen, die interessant sind, da sie alle Schlagsahne-Zuckerguss haben. Dies ist nicht spezifisch für Kuchen, nur ein Beispiel.