我希望在 MySQL 数据库中有 3 个表来控制,比如在线商店中销售的商品。 3张表如下:
- 当前项目
- 停产商品
- 发票
我已将商品分成 2 个表,以防止网站在列出网站上的促销商品时必须查找整个当前商品和停产商品。该网站只需要列出当前的项目,因此我认为这样做会随着网站的发展而提高性能。列出股票的查询将频繁运行。
一旦商品不再销售,它们将被“转移”到停产表中,新商品将添加到当前商品表中。
每张发票都将引用商品数据库(当前或已停产)的唯一关键字段,以识别该发票上包含哪些商品。
为了使其正常工作,当创建新项目并将其添加到当前项目表时,关键字段对于两个表都必须是唯一的。否则,发票可能会引用 2 个项目,因为它会查看当前和已停产的表格以找出每张发票上的项目。
有没有办法为两个不同表的唯一字段分配唯一值?
提前非常感谢。
最佳答案
这似乎是一个糟糕的设计。
相反,只需在 items
表中添加一个 discontinued
标志即可 - 可能与 DiscontinuedDate
一起使用。
这将使您能够保持引用完整性。它将简化查询,因为项目引用始终会转到一个表。
如果愿意,您可以在 items
表上创建两个 View :v_ItemsCurrent
和 v_ItemsDiscontinued
。这些将使用 where
子句来选择适当的项目集。
关于MySQL:2个表唯一的关键字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26212773/