Sales和Item之间的简单关系数据库

时间:2012-06-18 05:09:38

标签: mysql relational-database

我正在为我的项目构建一个简单的销售点系统。 该系统有一个名为Sales的表和另一个名为Item的表。 在Item表中将有一个名为itemcode的列,它是一个主键。 在Sales表中将有一个名为itemcode的列,它是Item表中引用itemcode的外键。

问题是我应该在Sales表中将itemcode作为引用Item表中itemcode的外键吗?

如果是外键,如果此特定项目有销售,我无法从Item表中删除特定项目。这是因为Sales表中有外键引用Item表中的主键。

如果它不是外键,则在更新Item表中的itemcode时,itemcode不会更新。

有关解决此问题的任何提示吗?

2 个答案:

答案 0 :(得分:0)

如果您的商品代码在您的数据库中的生命周期内将更改给定商品,那么它不适合作为主键。在这种情况下,我们通常会生成自动递增和适当的任意ID以用作主键,然后在外键关系中使用它们。你有没有蛋糕和吃它...它只需要一个更好的索引和高效的列。 : - )

答案 1 :(得分:0)

您可以将entity_id作为项目表的主键,这将从sales表中引用。商品代码只是商品表中的另一列。