gpt4 book ai didi

sql - 我应该使用唯一字符串作为主键还是应该将其作为单独的自动增量 INT?

转载 作者:行者123 更新时间:2023-12-04 21:18:55 25 4
gpt4 key购买 nike

Possible Duplicates:
Surrogate Vs. Natural/Business Keys
When not to use surrogate primary keys?

所以,我更喜欢将 INT 作为 AI 的主键。但是,这就是我考虑将唯一字符串作为主键的原因:我不必查询相关表来获取主键,因为我已经知道它了。

例如:
我有一个多对多的关系:

Customer - Order - Product

假设我想添加一个新客户和一个新订单,并且我已经知道他们购买了什么。我必须对产品表进行查询以获取 INT,但如果我有作为主键的字符串(唯一)我不必进行查询(这对我来说似乎更干净,我 不是 谈论优化/运行时速度,根本没有)。

最佳答案

如果您不担心优化,主键的主要 2 个标准是:

  • 独特性

  • 恒定性(永不改变)

例如如果您的问题域是 - 并且将永远是 - 使得 2 个产品名称始终不同,并且任何产品都不会更改其名称(想想 Norton Antivirus -> Symantec Antivirus 以获取名称更改的简单示例),那么您可以使用产品名称作为唯一键。

这两个必须 100% 正确,不仅是今天,而且对于数据库的任何可预见的 future 生命周期。

因此,强烈建议使用数字 ID,因为您可能并不总是能够预测此类事情 - 稍后更改数据库结构以获得产品 ID 当然比需要映射和查询中名称的 ID。

关于sql - 我应该使用唯一字符串作为主键还是应该将其作为单独的自动增量 INT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258810/

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