以一对一的关系代理密钥吗?

问题描述

我有两个表:对象形状

对象具有形状。一个对象必须具有一个形状,并且不能超过一个形状。

所以,我主要是这样设计的:One-to-one relationship PK

这对我来说很有意义,因为我知道我永远不会为一个给定的对象拥有2行。另外,这些形状会随着时间的推移改变我的价值观,因此我想能够找到合适的行并更改它们的值。

但是,我听说有一个代理密钥是一种很好的做法。建议我在我的情况下使用它,以完成此设计:One-to-one relationship surrogate key

但是我看不到这里的好处。我的ObjectID本身是 Objects 表中的代理键。所以为什么?而且我必须确保对于给定的对象必须有一个形状。如果使用ShapeID代理键,最终将不得不管理 Shapes 表中FK ObjectID 上的一些约束,对吗? 另外,如果我使用代理键,则在需要更新对象形状时,可能必须找到旧行,删除它,插入新行等,对吗?

所以,我想问一下。在一对一关系中,为什么要使用替代键而不是主键作为外键?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...