首页 新闻 会员 周边 捐助

请问数据库表关联用主键ID好还是CODE好?

0
悬赏园豆:5 [待解决问题]

请问数据库表关联用主键ID好还是CODE好?

筱恕的主页 筱恕 | 初学一级 | 园豆:196
提问于:2020-02-14 11:06
< >
分享
所有回答(7)
0

肯定是主键ID啊,主键是具有索引的,这样检索速度也快一些。

lzhdim | 园豆:650 (小虾三级) | 2020-02-14 11:33
0

看需求了,不知道你们的code有什么含义,如果仅仅是数据的唯一标志,用id就行了,为什么还要另外加一个code,如果code是可变的,那只能关联到code吧,如果是不可变的,关联code和id都可以。

会长 | 园豆:12463 (专家六级) | 2020-02-14 11:34

我现在是在一张表里有三个其它表CODE,这个code是要展示的,我如果用ID关联,就要每次去Join其它表是关联查CODE,如果直接放CODE,这个CODE又是能偶尔被改的。我期望每次查询不关联那三张表,又想改CODE的时候动作小一些

支持(0) 反对(0) 筱恕 | 园豆:196 (初学一级) | 2020-02-14 11:53

@筱恕: 哦,我觉得外键里放Id还是更靠谱。那我觉得没办法,只能是关联查询出Code,当然可以在子表里把id和code同时加上,数据冗余一点,这样就不用关联查询,但是增加了另外一个难度,父表修改code时,子表也得跟着改。

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2020-02-14 12:10
0

这个得根据你具体的需求而定,id也好,code也行,没有绝对的方案。
不建议使用外键,数据的联动修改最好做成手动控制(事务);
如果数据量太大,不建议使用join,宁愿查两次。

寻觅beyond | 园豆:923 (小虾三级) | 2020-02-14 15:03
0

看你上面的回复, 主键就是要无意义且唯一的. 这样不会出任何问题.

风中的雪糕 | 园豆:418 (菜鸟二级) | 2020-02-14 21:21
0

绝大部分是用主键

风行天下12 | 园豆:3867 (老鸟四级) | 2020-02-21 21:58
0

再加一张表?肯定要join

吾言! | 园豆:208 (菜鸟二级) | 2021-04-20 18:46
0

主键,只具备唯一性,只用于表连接。

Code,具备一定的业务含义,目前看来也具备唯一性,但是未来或许会发生变化,唯一性在变化中消失了,所以不建议使用Code作为关联条件。

renguanyu | 园豆:841 (小虾三级) | 2022-04-24 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册