gpt4 book ai didi

mysql - 对列的唯一组合进行 PK 或添加数字 rowID

转载 作者:行者123 更新时间:2023-11-29 03:54:53 27 4
gpt4 key购买 nike

这与其说是编程问题,不如说是设计问题。

我有一张表,用于存储有关零售产品的详细信息:

Name    Barcode    BarcodeFormat  etc...
----------------------------------------

(Name, Barcode, BarcodeFormat) 这三列将唯一标识表中的一条记录(Candidate Key)。但是,我还有其他表需要对此表进行 FK。所以我引入了一个 auto_incrementitemId 并将其作为 PK。

我的问题是 - 我应该将 PK 作为 (itemId, Name, Barcode, BarcodeFormat) 还是将 PK(itemId) UNIQUE(名称、条码、条码格式)

我主要关心的是 INSERTSELECT 操作方面的性能,但也欢迎对大小发表评论。

我在 mysql 中使用 innodb

最佳答案

肯定是:PK(itemId) 和 UNIQUE(Name, Barcode, BarcodeFormat)。

  • 您不希望为所有连接等使用多部分 key 带来的麻烦
  • 您可能有一天会有行没有条形码值,这样就不会是唯一的,所以您不希望唯一性硬连接到您的模型中(您可以轻松地删除唯一性而不破坏任何关系等)
  • 唯一性约束是一个业务层面的问题,而不是数据库实体问题:您总是需要一个键,但您可能并不总是需要唯一性的业务规则

关于mysql - 对列的唯一组合进行 PK 或添加数字 rowID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com