sql – 主键为文本[已关闭]
在我在教育期间(约4年前)的数据库课程中,我认为建议避免使用字符串作为主键的数据类型.
有人可以告诉我,在SQL中为主键选择字符变化的数据类型有什么优点和缺点,上述前提是多少? N.B .:(我使用PostgreSQL数据库).我也在处理一个情况,当你需要从另一个引用这样的表,从而把外键字符变化的数据类型.也请考虑. 解决方法您选择字符数据类型作为主键字段的优点是您可以选择可以显示的数据.例如,您可以将电子邮件地址作为用户表的关键字段.这消除了对附加列的需要.另一个优点是如果您有一个公用数据表,其中包含多个其他表的索引(请注意FINSET,CONTACT和ADMIN表的外部引用的NOTES表),您可以很容易地知道这来自哪个表(例如,您的FINANCE表具有F00001的索引,CONTACT表的索引为C00001等).我反对这种做法,恐怕这个答复的缺点会更大.缺点如下: >在PostgreSQL中,串行数据类型正是因为这个原因而存在的 在您的情况下,您仍然可以将外键放在数字索引上,所以我不知道为什么要强制它是一个varchar类型.数字字段的搜索和过滤在理论上比文本字段更快,因为服务器将被强制转换数据.一般来说,您将具有非群集的数字主键,然后在数据列上创建一个要过滤的集群密钥. 这些是编写SQL时的通用标准,但是当涉及到基准测试时,您只会发现varchar列在加载和过滤方面比整数列慢一些.只要您的主键不改变EVER,那么你没关系. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |