我希望在MySQL数据库中有3个表来控制,比如在线商店中出售的商品。 3个表格如下:
我已将这些项目拆分为2个表格,以防止网站在网站上列出销售商品时必须查找整个当前和已停产的商品。该网站只需要列出当前项目,所以我认为这样做会加快网站增长的性能。列出库存的查询将经常运行。
一旦物品不再出售,它们将被“滗出”到已停产的表中,新物品将被添加到当前物品表中。
每张发票都会引用商品数据库的唯一关键字段(当前或已停止),以识别该发票上的商品。
为了使其工作,当创建新项目并将其添加到当前项目表时,关键字段将需要对两个表都是唯一的。否则,开票可能会引用2个项目,因为它会查看当前和已停止的表格,以确定每张发票上的项目。
有没有办法为2个不同表独有的字段分配唯一值?
非常感谢提前。
答案 0 :(得分:1)
这似乎是一个糟糕的设计。
相反,只需在discontinued
表中添加items
标记 - 可能还有DiscontinuedDate
。
这将允许您保持参照完整性。它将简化查询,因为项目引用将始终转到一个表。
如果您愿意,可以在items
表格上创建两个视图:v_ItemsCurrent
和v_ItemsDiscontinued
。这些将使用where
子句来选择适当的项集。