1. 程式人生 > >多對多表結構設計

多對多表結構設計

在完成角色管理是,首先我們有一個角色表,其次要有一個選單表。他們之間是多對多的關係,即一個角色對應多條選單,同時一條選單可以對應多個角色。
1. 角色表
CREATE TABLE `js` (
  `jsid` int(11) NOT NULL auto_increment,
  `jsmc` varchar(20) default NULL,
  PRIMARY KEY  (`jsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;


2. 選單資訊表
CREATE TABLE `cdxx` (
  `cdxxid` int(11) NOT NULL auto_increment,
  `cdxxmc` varchar(40) default NULL,
  PRIMARY KEY  (`cdxxid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;


為了實現表之間多對多的關係,必須將一個多對多的關係通過一箇中間表分為兩個一對多的關係。因此引入第三張表,角色關係表。
CREATE TABLE `jsgx` (
  `jsgxid` int(11) NOT NULL auto_increment,
  `jsid` int(11) default NULL,
  `cdxxid` int(11) default NULL,
  `access` int(11) default NULL,
  PRIMARY KEY  (`jsgxid`),
  KEY `jsid` (`jsid`),
  KEY `cdxxid` (`cdxxid`),
  CONSTRAINT `jsgx_ibfk_1` FOREIGN KEY (`jsid`) REFERENCES `js` (`jsid`),
  CONSTRAINT `jsgx_ibfk_2` FOREIGN KEY (`cdxxid`) REFERENCES `cdxx` (`cdxxid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;