Sto costruendo un'app per negozio personale in cui gli utenti possono vendere gli articoli a vicenda, ma sto avendo difficoltà a capire come gestire il prodotti. Ad esempio, se vuoi vendere una maglietta dovresti essere in grado di scegliere una taglia e un colore ecc. Ma se vendi un computer devi specificare l'anno, la potenza della cpu, ecc. Tutti i prodotti hanno un titolo, un prezzo, immagini e così su, ma come faresti a cavartela con i vari attributi? Sto usando mongodb per gli oggetti.Come definire gli attributi variabili per un sistema di prodotto in mangusta (node.js)
Stavo pensando di avere un campo attributes
che dovrebbe essere un oggetto con i diversi dettagli, e quindi un campo type
che definirebbe quali proprietà esistono. Se type = 'Computer
allora vorrei sapere che attributes
sarebbe simile a questo.
attributes: {
capacity: 1000 // gb
ram: 4096 // MB
}
ecc
In un oggetto di design orientato normale avrei fatto ciò attraverso ereditarietà/interfacce. Se avete qualche idea sull'approccio migliore per questo in mangusta/node.js sarei felice di sentirlo.
Se io non sto facendo abbastanza chiaro nella questione prego di dirmi che cosa è vaga e ciò che dovrebbe essere chiarito
Edit:
Il seguente articolo descrive uno soluzione al problema http://learnmongodbthehardway.com/schema/chapter8/
Tuttavia non indica dove posizionare gli attributi. Una soluzione potrebbe essere quella di archiviarla nella categoria stessa, ma non sono sicuro delle migliori pratiche qui.
stai chiedendo come definire lo schema o come affrontare la cosa in generale? –
Possibile tramite 'discriminator mapping' https://github.com/Automattic/mongoose/pull/1647 e questo è stato discusso qui in SO. – jpaljasma
Per iniziare con un buon calcio nella giusta direzione sarebbe utile. Riguardo alla definizione dello schema è anche utile sapere, ma che posso leggere su – chrs