Sto progettando un sito di e-commerce multilingue. I prodotti hanno proprietà diverse. Alcune proprietà sono diverse per ogni lingua (come il colore), altre proprietà sono le stesse per tutte le lingue (come SKU). Le proprietà non sono predefinite, ad esempio le auto hanno altre proprietà rispetto alle macchine per caffè espresso.Che cos'è un design efficiente dello schema MongoDB per un sito di e-commerce multilingue?
Mi piacerebbe progettare lo schema del database in modo tale che:
- Ricerca e in rappresentanza di tutti i prodotti della categoria x in linguaggio y è veloce
- La quantità di dati duplicati è basso
- I don 't desidera utilizzare i file con le traduzioni
sto pensando di usare uno schema come questo:
{
_id: ObjectID("5dd87bd8d77d094c458d2a33"),
multi-lingual-properties: ["name", "description"],
name: { en: "Super fast car",
nl: "Hele snelle auto"},
description: { en: "Buy this car",
nl: "Koop deze auto"},
price: 20000,
sku: "SFC106X",
categories: [ObjectID("4bd87bd8277d094c458d2a43")]
}
Esiste un'alternativa migliore a questo schema? Quali problemi incontrerò quando utilizzo questo schema?
Nella mia esperienza, i sistemi di e-commerce tendono ad avere schemi di database altamente relazionali - sei sicuro che MongoDB è giusto per questo? –
@Neville K Sì: http://spf13.com/post/mongodb-ecommerce-a-perfect-combination e http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/ –
Sono assolutamente pronto ad accettare di essere una cinica vecchia capra, ma i fautori di MongoDB sono a favore di MongoDB in questo contesto non sarebbero sufficienti a influenzarmi. Mi piace molto l'idea di NoSQL per la parte del catalogo di un sito di e-commerce - i prodotti sono notoriamente polimorfi. Non sono sicuro di voler fare la parte della logica aziendale - carrello, check-out, pagamento, indirizzamento, realizzazione - senza la mia coperta comfort relazionale ... –