如何使用Firebase设计三维nosql数据库
How to design three dimension nosql database using Firebase
我正在使用 Firebase 作为 e-commerce 应用程序的数据库。
我在产品目录设计中遇到了问题。
我的想法是:
1. 一个产品可以有不同的尺寸。 (例如 S、M、L、XL)
2.一种产品也可以有不同的颜色。 (例如黑色、蓝色、古铜色、红色)
3. 价格会因尺寸或不同颜色而异,例如黑色的中号 T-shirt 售价 100 美元,而相同尺寸 T-shirt 的蓝色售价 150 美元。
换句话说,一个有 3 种尺寸和 3 种颜色的 T-shirt 最多可以有 9 个不同的价格。
以下是我能想到的设计。
我将尺码、颜色和价格存储在 child 'sku' 中。
在这个child下,我把不同颜色的价格放在child'price'
但我认为这不是最好的设计,所以希望有人能提出更好的解决方案。
为了安全起见,我隐藏了部分唯一密钥。
您应该根据需要改造您的数据库。
Products
|
-Kj53453453453453 //ProductId
| |
--- Small_Size: true
| |
--- Black_Color: true
| |
--- Quantity: 7
| |
--- Price: 100
| |
--- ProductId: T_SHORT_ID // which must be the same for all t-shirts of same type
|
-Kj53453794677886 //ProductId
|
--- XL_Size: true
|
--- Red_Color: true
|
--- Quantity: 9
|
--- Price: 65
|
--- ProductId: T_SHORT_ID // which must be the same for all t-shirts of same type
Sizes
|
--- Small_Size: "S"
|
--- Medium_Size: "M"
|
--- Large_Size: "L"
|
--- XL_Size: "XL"
|
--- XXL_Size: "XXL"
Colors
|
--- Black_Color: "Black"
|
--- Blue_Color: "Blue"
|
--- Bronze_Color: "Bronze"
|
--- Red_Color: "Red"
使用此模型,您将能够为每个产品单独设置一个节点。这意味着,假设第一个产品的 ID 为 -Kj53453453453453
,您知道它已退货且尺码为 si S。对于此类产品,您还知道您有 7 件。当有人要买一件的时候,你唯一需要做的就是减少一件,就这样!
创建正确的查询,您将能够显示数据库中的所有内容,所有产品、所有尺寸、所有颜色、所有黑色产品、所有 XL 尺寸的产品等等。
希望对您有所帮助。
我正在使用 Firebase 作为 e-commerce 应用程序的数据库。 我在产品目录设计中遇到了问题。
我的想法是: 1. 一个产品可以有不同的尺寸。 (例如 S、M、L、XL) 2.一种产品也可以有不同的颜色。 (例如黑色、蓝色、古铜色、红色) 3. 价格会因尺寸或不同颜色而异,例如黑色的中号 T-shirt 售价 100 美元,而相同尺寸 T-shirt 的蓝色售价 150 美元。 换句话说,一个有 3 种尺寸和 3 种颜色的 T-shirt 最多可以有 9 个不同的价格。
以下是我能想到的设计。 我将尺码、颜色和价格存储在 child 'sku' 中。 在这个child下,我把不同颜色的价格放在child'price' 但我认为这不是最好的设计,所以希望有人能提出更好的解决方案。
为了安全起见,我隐藏了部分唯一密钥。
您应该根据需要改造您的数据库。
Products
|
-Kj53453453453453 //ProductId
| |
--- Small_Size: true
| |
--- Black_Color: true
| |
--- Quantity: 7
| |
--- Price: 100
| |
--- ProductId: T_SHORT_ID // which must be the same for all t-shirts of same type
|
-Kj53453794677886 //ProductId
|
--- XL_Size: true
|
--- Red_Color: true
|
--- Quantity: 9
|
--- Price: 65
|
--- ProductId: T_SHORT_ID // which must be the same for all t-shirts of same type
Sizes
|
--- Small_Size: "S"
|
--- Medium_Size: "M"
|
--- Large_Size: "L"
|
--- XL_Size: "XL"
|
--- XXL_Size: "XXL"
Colors
|
--- Black_Color: "Black"
|
--- Blue_Color: "Blue"
|
--- Bronze_Color: "Bronze"
|
--- Red_Color: "Red"
使用此模型,您将能够为每个产品单独设置一个节点。这意味着,假设第一个产品的 ID 为 -Kj53453453453453
,您知道它已退货且尺码为 si S。对于此类产品,您还知道您有 7 件。当有人要买一件的时候,你唯一需要做的就是减少一件,就这样!
创建正确的查询,您将能够显示数据库中的所有内容,所有产品、所有尺寸、所有颜色、所有黑色产品、所有 XL 尺寸的产品等等。
希望对您有所帮助。