关于用不用复合主键老师能给点意见吗?

来源: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上建立一个唯一索引,以保证业务上数据唯一。

0
0

零基础入门 详解企业主流数据库MySQL8.0

掌握SQL优化与慢查询优化,具备独当一面的能力

1641 学习 · 485 问题

查看课程