可以在 oa_task表加个任务类型字段(目前是合同任务或者系统任务,以后还可以扩展其他类型任务),这样可以区分 system_code 是哪个表的ID
uuid有可能会重复吗?如果重复我设置外键,其他的任务不也被删除了?
@哦IE而: uuid重复的可能性极低极低,可以认为是不会重复的。
你这里一个code会关联多个表的id,根本没法设置外键吧
如果系统任务和合同任务差别不大,可以放在一个表里面,用一个任务类型区分
1.如果是一定要建表,正常来说uuid
不会出现重复,你这样设计没问题!但是以防万一,也为了后续扩展,你可以在 oa_task表加个任务类型字段,task_type
(0=系统任务,1=合同任务,2=其他任务…,以此类推)用作区别,比如你要查询系统任务,加上 and task_type=0
;
2.如果不一定要建表,你可以建一个视图,用union all
查询合同表和系统表
但是你区分不了是哪种任务,要是有场景是分开展示不同类型的任务,你这个查询就不好弄了啊
很明显你这样设计表不合理,你并没有区分system_code来自哪张表的,即你并没有区分任务类型。你这样的表设计会让后来的开发者一头雾水。
另外,外键约束要指定对应的主键字段的,外键字段与主键字段之间是多对一的关系,不允许一个外键对应多个主键,设置不了。
最合理的做法就是在表oa_task中添加一个用来区分任务类型的字段。