适用于电子商务的数据库架构
Appropriate Database Schema for ecommerce
假设我们有一个电子商务网站,用于订购必须定制的商品。
我想到的模式是:
- 一个table表示订单,每行一个订单
- A table 对于 Order_Item,每一行都是一个订单项(外键 order_id)
- A table 用于 Order_Item_Option,每一行都是订单项目的一个选项(外键 order_item_id)
该网站还可以在订购前将客户购物车保存在数据库中。
我的问题是:在下订单之前,您将如何存放购物车?
A- 你会把数据放在同一个数据库(订单,orders_items,order_items_option)中,具有相同的逻辑,具有特定的状态,并简单地按订单更新状态。
B- 复制相同的架构,但仅适用于购物车。
我想选择选项 A,但我担心在几次 weeks/months 之后取车最终会变得太慢。我预计 table 和 order_item_option 会快速增长,可能每月大约 50/100K 行。那你会怎么做呢?
最好选择选项 B,因为购物车商品(有时称为队列)会随着时间的推移而增长,但对您没有太大用处。如果您有一个单独的购物车设置,您可以更好地处理旧记录的归档,而不会在订单数据库上保持太多负载,因为订单数据库也可能查询过去订单的列表。
(重新发布我之前的评论作为答案,以防它有被标记为已接受答案的范围。)
假设我们有一个电子商务网站,用于订购必须定制的商品。
我想到的模式是:
- 一个table表示订单,每行一个订单
- A table 对于 Order_Item,每一行都是一个订单项(外键 order_id)
- A table 用于 Order_Item_Option,每一行都是订单项目的一个选项(外键 order_item_id)
该网站还可以在订购前将客户购物车保存在数据库中。 我的问题是:在下订单之前,您将如何存放购物车?
A- 你会把数据放在同一个数据库(订单,orders_items,order_items_option)中,具有相同的逻辑,具有特定的状态,并简单地按订单更新状态。
B- 复制相同的架构,但仅适用于购物车。
我想选择选项 A,但我担心在几次 weeks/months 之后取车最终会变得太慢。我预计 table 和 order_item_option 会快速增长,可能每月大约 50/100K 行。那你会怎么做呢?
最好选择选项 B,因为购物车商品(有时称为队列)会随着时间的推移而增长,但对您没有太大用处。如果您有一个单独的购物车设置,您可以更好地处理旧记录的归档,而不会在订单数据库上保持太多负载,因为订单数据库也可能查询过去订单的列表。
(重新发布我之前的评论作为答案,以防它有被标记为已接受答案的范围。)