繁体   English   中英

数据库设计-保留历史外键信息

[英]Database Design - Keeping historical foreign key information

假设我有一家网上商店(不是真实情况,但足够亲密)。 我有产品和产品类别。 每个产品仅属于一个类别,但是可以将一个产品从一个类别移动到另一个类别。 还有一个购买,其中包含对产品的引用以及购买日期。 为简化起见,每次购买都只有一件商品。

没事吧 好的,有了这种结构,我可以找到某天购买的产品的当前类别。 但是,如果该产品已移至另一个类别,并且我想在购买日期找出该产品属于哪个类别,该怎么办?

存储所需信息的良好数据库结构是什么? 查询应保持简单,但更新的可维护性也应如此(虽然不是很重要)。

我已经考虑了两种解决方案,但是我对它们都不满意。

  • 代替从产品到类别的直接引用,添加一个额外的表,该表还包含日期(当产品属于该类别时)。 此选项使查询复杂得多,需要额外的联接和比较。
  • 将购买的参考添加到类别,该参考在购买时会保存。 这似乎很不合逻辑,因为从购买到类别(直接和通过产品)有两个引用。 而且,这使更新变得复杂,因为还有一个看似无关的字段需要更新。

还有没有想到的其他选择吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM