我正在为一家商业商店建立一个数据库。我正在讨论在数据库中使用 productID。
我还需要将交易历史存储在数据库中。
使用 productID 或使用条形码作为我的产品的唯一标识符会更好吗?
我正在为一家商业商店建立一个数据库。我正在讨论在数据库中使用 productID。
我还需要将交易历史存储在数据库中。
使用 productID 或使用条形码作为我的产品的唯一标识符会更好吗?
你可以同时使用不是吗?没有理由产品不应该有超过一种类型的标识符。然而,视情况而定,一个产品可能有多个条形码。对于零售包装商品,同一产品具有多个不同条形码的情况并不少见。
一般来说,条形码将是一个糟糕的 PK。由于它们将存储为的数据类型,您不想加入它们。对于任何有子表的表来说,产品 ID 可能是一个更好的选择。但是,您可能仍然应该在条形码上放置一个唯一索引,没有什么能阻止拥有唯一索引的东西。
你基本上有两个选择:
在第一种情况下:
在第二种情况下:
因此,它基本上是在更少或更多 JOIN 之间以及“底部重”或“顶部重”存储/缓存之间进行权衡。您只需要决定哪个更适合您预期的数据访问模式...
1即通过 FOREIGN KEY 引用 PRODUCT 的表。TRANSACTION_HISTORY 可能是此类表的一个示例。