0

Som 我正在尝试设计一个电子商务系统,供应商可以在其中添加要在网站上显示的产品。供应商可以编辑/更新产品详细信息,但除非管理员对其进行审核,否则他们不应“上线”。

我有几个代表不同产品的模型。这是一种此类产品的设计,但同样的系统将应用于每种产品类型。

这是图表:在此处输入图像描述

我能否就这种方法的优缺点得到一些反馈。有没有更好的方法来解决这个问题。这是可扩展的吗?

谢谢

4

1 回答 1

0

is_current_products和表中的内容awaiting_approvals应存储为列而不是单独的表。

由于当前产品将被大量查询(每次客户访问该站点),因此首先获取is_current_products表然后显示来自products. products当您要对表格进行排序时,这将是一个更大的麻烦。

我将如何设计这是有两个表:productsproduct_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。

使用这种设计,您还可以恢复到旧版本,同时保持所有其他版本完好无损。

希望这可以帮助。

于 2012-08-04T19:05:26.400 回答