关于用不用复合主键老师能给点意见吗?
来源:3-14 【面向对象设计】根据设计范式对【问答评论对象】逻辑建模

Amrzteb
2020-03-31
两种方案哪种比较好
task_node_relations是一个标记另一张表上下游关系的表
child_node_id + parent_node_id 是唯一
task_flow_id用来筛选所属的全部节点关系列表
同一个task_flow 不会有很多节点
三个字段都可能会被用来筛选查询
方案一:
task_flow_id (所属) | child_node_id | parent_node_id
PRIMARY KEY (`child_id`,`parent_id`),
KEY `parent_id` (`parent_id`),
KEY `task_flow_id` (`task_flow_id`)
方案二:
id | task_flow_id | child_node_id | parent_node_id
PRIMARY KEY (`id`),
KEY `parent_id` (`task_flow_id `,`parent_id`),
KEY `task_flow_id` (`task_flow_id `,`child_id`),
描述不清楚的很复杂的话也可以随便给点意见
写回答
1回答
-
sqlercn
2020-03-31
主键不建议使用复合索引,你可以用自增ID主键,另外在child,parent_id上建立一个唯一索引,以保证业务上数据唯一。
00
相似问题