首页 新闻 会员 周边 捐助

这样设计表合理吗?

0
悬赏园豆:100 [已解决问题] 解决于 2022-06-08 12:53

我设计一张任务表,要记录系统任务和合同任务,但我插入的时把这两个字段插入到了同一个字段,业务是可以实现,但是这样合理吗?id用的是uuid目前没有出现重复的现象!

哦IE而的主页 哦IE而 | 初学一级 | 园豆:86
提问于:2022-05-08 20:41
< >
分享
最佳答案
0

可以在 oa_task表加个任务类型字段(目前是合同任务或者系统任务,以后还可以扩展其他类型任务),这样可以区分 system_code 是哪个表的ID

收获园豆:100
wang_yb | 老鸟四级 |园豆:4891 | 2022-05-08 21:47

uuid有可能会重复吗?如果重复我设置外键,其他的任务不也被删除了?

哦IE而 | 园豆:86 (初学一级) | 2022-05-12 21:43

@哦IE而: uuid重复的可能性极低极低,可以认为是不会重复的。
你这里一个code会关联多个表的id,根本没法设置外键吧

wang_yb | 园豆:4891 (老鸟四级) | 2022-05-14 20:46
其他回答(4)
0

如果系统任务和合同任务差别不大,可以放在一个表里面,用一个任务类型区分

不知道风往哪儿吹 | 园豆:2037 (老鸟四级) | 2022-05-09 09:57
0

1.如果是一定要建表,正常来说uuid不会出现重复,你这样设计没问题!但是以防万一,也为了后续扩展,你可以在 oa_task表加个任务类型字段,task_type(0=系统任务,1=合同任务,2=其他任务…,以此类推)用作区别,比如你要查询系统任务,加上 and task_type=0
2.如果不一定要建表,你可以建一个视图,用union all查询合同表和系统表

三人乐乐 | 园豆:4823 (老鸟四级) | 2022-05-09 13:49
0

但是你区分不了是哪种任务,要是有场景是分开展示不同类型的任务,你这个查询就不好弄了啊

labman004 | 园豆:214 (菜鸟二级) | 2022-05-12 16:47
0

很明显你这样设计表不合理,你并没有区分system_code来自哪张表的,即你并没有区分任务类型。你这样的表设计会让后来的开发者一头雾水。

另外,外键约束要指定对应的主键字段的,外键字段与主键字段之间是多对一的关系,不允许一个外键对应多个主键,设置不了。

最合理的做法就是在表oa_task中添加一个用来区分任务类型的字段。

liaowenxiong | 园豆:33 (初学一级) | 2022-06-07 14:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册