首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您是否曾经在自然ID上创建关系,或者使用内部ID并模仿自然ID关系?

您是否曾经在自然ID上创建关系,或者使用内部ID并模仿自然ID关系?
EN

Stack Overflow用户
提问于 2010-01-19 17:14:39
回答 4查看 462关注 0票数 0

可能重复:

Surrogate Vs. Natural/Business Keys

如果给定两个表,Level1 ID、标题、数字Level2 ID、FKID??、标题、编号

系统的用户知道Level2与Level1的关系是基于等级1的数字,我的问题是,您是根据内部ID来建立关系并“模拟”与“数字”的关系,还是简单地使用“数字”字段来完成?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-19 17:18:03

在数据库ID而不是自然ID上关联的两个标准原因是:

很难保证在任何circumstance

  • Generally下,自然ID都不会更改,自然ID占用更多空间,索引效率也不如数据库ID (当然,这并不困难和快速--这取决于构成您的自然ID的数据)。通过使用数据库ID,可以避免业务数据的重复。
票数 3
EN

Stack Overflow用户

发布于 2010-01-19 17:19:14

我想这件事已经被报道过很多次了。

使用标识/AUTONUMBER作为外键几乎总是安全的.

大多数自然键可以被复制(即使是错误的)。

在我的国家,我们甚至有问题的个人身份证号码的人X-)。

票数 0
EN

Stack Overflow用户

发布于 2010-01-19 17:20:38

如果'Number‘列可以以自然的方式将两个表关联起来,我就不会强制使用基于内部(代理项)键的关系。

一方面,'Number‘列可能足够好,所以您不会在ID列上浪费空间。另一方面,如果'Number‘列没有正确的特征(可能会改变,可能很难索引,等等),那么代理项ID可能是一个更好的选择。

这一切归结为'Number‘列的语义。

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

https://stackoverflow.com/questions/2095388

复制
相关文章

相似问题

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