Ich baue eine Personal Shop App, wo Benutzer Artikel verkaufen können, aber ich habe eine schwierige Zeit herauszufinden, wie man das verwaltet Produkte. Zum Beispiel, wenn Sie ein T-Shirt verkaufen möchten, sollten Sie in der Lage sein, eine Größe und Farbe usw. zu wählen, aber wenn Sie einen Computer verkaufen, sollten Sie das Jahr angeben, CPU-Leistung usw. Alle Produkte haben einen Titel, Preis, Bilder und so weiter, aber wie würdest du mit den unterschiedlichen Attributen auskommen? Ich benutze mongodb für die Objekte.So definieren Sie unterschiedliche Attribute für ein Produktsystem in mongoose (node.js)
Ich dachte über ein Feld attributes
, die ein Objekt mit den verschiedenen Details sein sollte, und dann ein Feld type
, die definieren würde, welche Eigenschaften vorhanden sind. Wenn type = 'Computer
dann würde ich wissen, dass attributes
in etwa so aussehen würde.
attributes: {
capacity: 1000 // gb
ram: 4096 // MB
}
usw.
In einem normalen objektorientierten Design würde ich dies über Schnittstellen Vererbung/getan haben. Wenn Sie eine Idee über den besten Ansatz dafür in mongoose/node.js haben, würde ich mich freuen, davon zu hören.
Wenn ich mich nicht klar in der Frage machen Sie mir sagen, was vage ist und was sollte geklärt werden
Edit:
Der folgende Artikel beschreibt eine Lösung für das Problem http://learnmongodbthehardway.com/schema/chapter8/
Es gibt jedoch nicht an, wo die Attribute zu setzen sind. Eine Lösung könnte darin bestehen, sie einfach in der Kategorie selbst zu speichern, aber ich bin mir hier nicht sicher, was die besten Praktiken sind.
Fragen Sie, wie man das Schema definiert oder wie man sich der Sache im Allgemeinen nähert? –
Möglich durch 'discriminator mapping' https://github.com/Automatic/mongoose/pull/1647 und dies wurde hier in SO diskutiert. – jpaljasma
Am Anfang wäre ein guter Kick in die richtige Richtung sinnvoll. In Bezug auf die Definition des Schemas ist auch nützlich zu wissen, aber das kann ich auf – chrs