Projektuję wielojęzyczną witrynę e-commerce. Produkty mają różne właściwości. Niektóre właściwości są różne dla każdego języka (np. Kolor), inne właściwości są takie same dla wszystkich języków (np. SKU). Właściwości nie są predefiniowane, na przykład samochody mają inne właściwości niż ekspresy do kawy.Co to jest wydajny schemat schematu MongoDB dla wielojęzycznej witryny e-commerce?
Chciałbym zaprojektować schematu bazy danych takie, że:
- Wyszukany i reprezentujących wszystkie produkty z kategorii X w języku y jest szybka
- Kwota duplikatu danych jest niska
- I don „t chcesz użyć plików z tłumaczeniami
myślę o użyciu schematu tak:
{
_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")]
}
Czy istnieje lepsza alternatywa dla tego schematu? Jakie problemy napotkam, kiedy korzystam z tego schematu?
Z mojego doświadczenia wynika, że systemy e-commerce mają wysoce relacyjne schematy baz danych - czy na pewno MongoDB ma rację? –
@Neville K Tak: http://spf13.com/post/mongodb-ecommerce-a-perfect-combination i http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/ –
Jestem całkowicie przygotowany na to, że jestem cynicznym starym kozłem, ale fakt, że zwolennicy MongoDB popierają MongoDB w tym kontekście, nie byłby wystarczający, aby mnie wpłynąć. Bardzo podoba mi się pomysł NoSQL dla części katalogu witryny e-commerce - produkty są notorycznie polimorficzne. Nie jestem pewien, czy chciałbym wykonać część logiki biznesowej - koszyk, check-out, płatność, adresowanie, spełnienie - bez mojego koca relacyjnego komfortu ... –