表结构的关系

来源:互联网 发布:天威网络不稳定 编辑:程序博客网 时间:2024/06/01 10:49

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)
)