Som 我正在尝试设计一个电子商务系统,供应商可以在其中添加要在网站上显示的产品。供应商可以编辑/更新产品详细信息,但除非管理员对其进行审核,否则他们不应“上线”。
我有几个代表不同产品的模型。这是一种此类产品的设计,但同样的系统将应用于每种产品类型。
这是图表:
我能否就这种方法的优缺点得到一些反馈。有没有更好的方法来解决这个问题。这是可扩展的吗?
谢谢
Som 我正在尝试设计一个电子商务系统,供应商可以在其中添加要在网站上显示的产品。供应商可以编辑/更新产品详细信息,但除非管理员对其进行审核,否则他们不应“上线”。
我有几个代表不同产品的模型。这是一种此类产品的设计,但同样的系统将应用于每种产品类型。
这是图表:
我能否就这种方法的优缺点得到一些反馈。有没有更好的方法来解决这个问题。这是可扩展的吗?
谢谢
is_current_products
和表中的内容awaiting_approvals
应存储为列而不是单独的表。
由于当前产品将被大量查询(每次客户访问该站点),因此首先获取is_current_products
表然后显示来自products
. products
当您要对表格进行排序时,这将是一个更大的麻烦。
我将如何设计这是有两个表:products
和product_versions
,其中products
代表所有批准的信息,并product_versions
代表所有信息,无论它们是批准的还是历史的。
粗略的架构:
products
-id
-current_version_id
-#all the product information from newest approved version#
product_versions
-id
-product_id
-approved_by (can be null)
-approved_on (can be null)
-#all the product information from this version#
要显示当前产品信息,访问该products
表就足够了。
要获取待批准的版本,只需获取所有已批准的产品版本或已批准的属性为空。
要批准一个版本,需要修改product_version 上的approved_by 和approved_on,并将product 的信息修改为当前版本,包括current_version_id。
使用这种设计,您还可以恢复到旧版本,同时保持所有其他版本完好无损。
希望这可以帮助。