一个字符串表:添加一个 int 键,还是不添加?

Posted

技术标签:

【中文标题】一个字符串表:添加一个 int 键,还是不添加?【英文标题】:a table of strings: to add an int key, or not to add? 【发布时间】:2012-05-08 17:12:16 【问题描述】:

参考以下question 的答案 1,答案指出 最好有一个带有 ID(主键)字段和字符串字段的表,而不是一个字符串字段也是主键。

简而言之,我需要存储一个包含唯一字符串的表(每个字符串在表中应该只出现一次)。我对数据库的实现了解不够,所以我希望能得到一些关于哪种方法最好的教育解释(在我的情况下)。

谢谢,

【问题讨论】:

所以这个表只有一列,字符串?或者是否还有其他列,如果有,表上是否还有其他索引? 该表仅包含字符串字段(实体框架施加的限制 - 我遇到了引用问题中描述的确切问题) 有道理,我会同意互联网工程师的意见。 【参考方案1】:

如果将字符串字段作为主键,则不需要ID字段。

在性能方面,整数总是优于字符串。但在你的情况下,这并不重要。

注意:将字符串字段设为主键将确保所有值都是唯一的。

【讨论】:

【参考方案2】:

如果您的主键必须是 2+ 个字段,则最好有一个 int ID 字段(特别是如果您在其他表中引用此表)。

【讨论】:

【参考方案3】:

我会添加一个 int/long ID。它使引用更快、更清晰。处理也更容易,特别是如果你有很长的字符串(例如句子)。

【讨论】:

以上是关于一个字符串表:添加一个 int 键,还是不添加?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 无法添加外键约束

int 和guid做主键的时候性能的区别

记录一下MySQL的表分区常用操作

con sno联合主键怎么设置

mysql添加外键失败

使用easyui实现的添加公告功能(后台管理)