私はeコマースサイトを構築しており、MongoDBを試してみることにしました。私の目標は完全な柔軟性を達成することです。その結果、最終的には、システムが元々組み合わされた方法によって制限された特定の製品の販売に縛られることはありません。MongoDB eコマース製品ドキュメントデザイン
したがって、柔軟性の目標は、私は属性に基づいて製品を作成できなければなりません。 Fx。色、製造、スピードなど。すべての属性はオプションでなければなりません。ユーザーは新しい属性を作成することができ、一部はデフォルトのシステム属性(削除不可)です。属性の構成に基づいて、「基本」または構成可能な製品のいずれかに階層化されます。
- カタログでは、各色が個別の製品として表示されるように、色属性で商品を分割したいと考えています。現在のドキュメントデザインを使用してMongoDBでこれを達成できますか?
- 私は、MongoDBから製品を選択するとき、そしてプレゼンテーションの前に、私の文書を「過剰に埋める」か、あるいは多くのデータマッピングを行う必要があるという結論に達しました。私が間違っている?
- オプション(色、サイズ)を持っていて、他の商品にはないと考えると、在庫管理を行う最も効率的な方法は何ですか?
私の例で見てきたように、属性の下には通常の属性が格納され、ドキュメントオプションには「必須」属性があります。
私の製品ドキュメントは、何か改善の余地がありますか?リレーショナルデータベースを使って作業することで自分のアイデアが「傷ついている」ことがわかったので、私は何かを過小評価していると思います。
敬具
(
[type] => Product
[sku] => elin/4191
[name] => Array
(
[da] => Sko - Elin
[en] => Shoes - Elin
)
[url_key] => Array
(
[da] => sko-elin
[en] => 1-744
)
[categories] => Array
(
)
[shops] => Array
(
[0] => 1
)
[images] => Array
(
[0] => test.jpg
[1] => test1.jpg
)
[options] => Array
(
[0] => Array
(
[color] => Array
(
[da] => Sort
[en] => Black
)
[size] => Array
(
[da] => Lille
[en] => Small
)
[shipping] => Array
(
[weight] => 0
[width] => 0
[height] => 0
[depth] => 0
)
[pricing] => Array
(
[price] => 899
[retail] => 0
[cost] => 333
[vat] => 25
[special] => Array
(
[price] => 0
[from] => new Date()
[to] => new Date()
[pct_savings] => 100
[savings] => 0
)
)
)
[1] => Array
(
[color] => Array
(
[da] => Sort
[en] => Black
)
[size] => Array
(
[da] => Medium
[en] => Medium
)
[shipping] => Array
(
[weight] => 0
[width] => 0
[height] => 0
[depth] => 0
)
[pricing] => Array
(
[price] => 899
[retail] => 0
[cost] => 333
[vat] => 25
[special] => Array
(
[price] => 0
[from] => new Date()
[to] => new Date()
[pct_savings] => 100
[savings] => 0
)
)
)
[2] => Array
(
[color] => Array
(
[da] => Orange
[en] => Orange
)
[size] => Array
(
[da] => Lille
[en] => Small
)
[shipping] => Array
(
[weight] => 0
[width] => 0
[height] => 0
[depth] => 0
)
[pricing] => Array
(
[price] => 899
[retail] => 0
[cost] => 333
[vat] => 25
[special] => Array
(
[price] => 0
[from] => new Date()
[to] => new Date()
[pct_savings] => 100
[savings] => 0
)
)
)
[3] => Array
(
[color] => Array
(
[da] => Orange
[en] => Orange
)
[size] => Array
(
[da] => Medium
[en] => Medium
)
[shipping] => Array
(
[weight] => 0
[width] => 0
[height] => 0
[depth] => 0
)
[pricing] => Array
(
[price] => 899
[retail] => 0
[cost] => 333
[vat] => 25
[special] => Array
(
[price] => 0
[from] => new Date()
[to] => new Date()
[pct_savings] => 100
[savings] => 0
)
)
)
)
[attributes] => Array
(
[designer] => Array
(
[name] => Array
(
[da] => Manufacturer
[en] => Manufacturer
)
[type] => text
[visible] => 1
[required] => false
[value] => Array
(
[da] => FunnyShirts
[en] => FunnyShirts
)
)
)
)