关于mysql复合主键

以前,只在资料中遇到过复合主键,只是知道如何构建复合主键,却从没切身用过,今天在使用lavarel的权限管理插件时,遇到了:

CREATE TABLE `qpr_role_user` (
  `user_id` int(10) unsigned NOT NULL,
  `role_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`user_id`,`role_id`),
  KEY `role_user_role_id_foreign` (`role_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

这是一张用户--角色关联表,主键是用户id与角色id共同组成,这样做的目的是:同一个用户对应的某个角色,只能插入一条记录,这样就不会重复插入,避免逻辑/数据显示的错误

原文地址:https://www.cnblogs.com/ch459742906/p/7119196.html