0

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

问题是我应该让 Sales 表中的 itemcode 成为引用 Item 表中 itemcode 的外键吗?

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

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

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

4

2 回答 2

0

如果您的项目代码将在数据库中的给定项目的整个生命周期内发生变化,那么它不适合作为主键。在这种情况下,我们通常会生成自增且适当的任意 ID 作为主键,然后在外键关系中使用它们。你也吃蛋糕吗……它只是花费了一个索引良好且高效的专栏。:-)

于 2012-06-18T05:13:03.900 回答
0

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

于 2012-06-18T06:19:50.370 回答