表结构的关系

1对多 通过主键外键的关系来实现


多对多 通过一个中间表来进行实现,比如用户、角色、功能菜单都是通过多对多来实现的。

create database auth character set UTF8;
/*用户表*/
create table users(
  id varchar(32) primary key,
  name varchar(30),
  pwd varchar(32)
);
/*创建角色表*/
create table roles(
  id varchar(32) primary key,
  name varchar(30),
  des  varchar(100)
);
/*通过一个中间表映射多对多的关系,多对多就是多个一对多
 联合主键的特点是:两个列不能同时重复
*/
create table roleuser(
   uid varchar(32),
   rid varchar(32),
   constraint ru_pk primary key(uid,rid),
   constraint ru_fk1 foreign key(uid) references users(id),
   constraint ru_fk2 foreign key(rid) references roles(id)
);
/*创建菜单表*/
create table menus(
  id varchar(32) primary key,
  name varchar(50),
  url  varchar(100)
);
/*关联角色到菜单*/
create table rolemenu(
  mid varchar(32),
  rid varchar(32),
  constraint rm_pk primary key(mid,rid),
  constraint rm_fk1 foreign key(mid) references menus(id),
  constraint rm_fk2 foreign key(rid) references roles(id)
)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值