首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >身份列的来源是什么?

身份列的来源是什么?
EN

Database Administration用户
提问于 2018-11-27 21:50:49
回答 1查看 67关注 0票数 2

谁是身份专栏的第一创建者?那些创作者最初想要解决的问题是什么?背后有什么故事吗?

EN

回答 1

Database Administration用户

发布于 2018-11-27 22:38:21

你好,鲍勃,欢迎来到DBSE。

我假设(如果我错了请纠正我的话),您的问题不是关于Server或Oracle标识的特定属性,而是一般使用标识作为代理键的问题,这对于其他实现(如AUTO_INCREMENT、SEQUENCE、IDENTITY、GUID、OID作为设计选择)是正确的。

如果这就是你的意思,我向你致敬。大多数使用SQL的人从来不会停下来问这些问题,只是假设‘这就是它的方式’,因为每个人似乎都是这样做的。

这是一个有争议的话题,你会发现人们都有强烈的意见。快速搜索“天然密钥/人工密钥”将为你提供足够的阅读材料。

维基百科有一个好文章,可以让你开始工作。Joe还写了不少关于这个主题的优秀文章,您可以从这一个这一个开始。

我还发现这个视频会话在这个问题上是娱乐和教育的。

我认为两者都是有效的解决办法。然而,我也看到大多数人不加区分地使用代理键,仅仅是因为找到正确的键并正确地对其建模是一项重大的工作,这需要掌握关系模型,这是很困难的。

不幸的是,这也是导致许多数据一致性、模块化、性能、编码和可管理性挑战的根本原因,这些挑战最终导致了非常困难和昂贵的纠正。

询问曾经尝试合并两个使用代理键的数据集的人。在这一点上,你别无选择,只能寻找自然的钥匙。但是,如果自然键从来没有被探索过,或者用唯一的约束进行了适当的约束,那么这些不一致和重复的元素通常是非常丰富的。

在我的设计中,我发现我对大多数的表都使用了自然键,并对代理项是有益的边缘情况进行了仔细的规划。这些设计选择在很大程度上是少数人的意见。

HTH

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/223588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档