首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我需要对这个使用Rails版本控制的模型架构的评论。有什么建议吗

我需要对这个使用Rails版本控制的模型架构的评论。有什么建议吗
EN

Stack Overflow用户
提问于 2012-08-05 02:43:38
回答 1查看 66关注 0票数 0

Som我试图设计一个电子商务系统,其中供应商能够添加一个产品,以显示在网站上。供应商可以编辑/更新产品详细信息,但在管理员审核之前不应该“上线”。

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

如下图所示:

我能得到一些关于这种方法的利弊的反馈吗?有没有更好的方法来解决这个问题。这是可扩展的吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-05 03:05:26

is_current_productsawaiting_approvals表中的内容应该存储为列,而不是单独的表。

由于当前产品将被大量查询(每次客户访问该站点),因此首先获取is_current_products表,然后显示来自products的结果,这将是一项很大的开销。当您想要对products表进行排序时,这将是一个更令人头疼的问题。

我的设计方法是有两个表:productsproduct_versions,其中products表示所有已批准的信息,product_versions表示所有信息,无论这些信息是已批准的还是历史的。

粗略模式:

代码语言:javascript
复制
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表就足够了。

要获取等待审批的版本,只需获取approved_by或approved_on属性为空的所有ProductVersion。

审核版本时,会在product_version上修改approved_by和approved_on,产品信息会修改为当前版本,包括current_version_id。

使用这种设计,您还可以恢复到较旧的版本,同时保持所有其他版本的机智。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11811145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档