2011-03-02 77 views
0

道歉所有的教條2的問題,但我一直在努力鑽研它,並一直有一些問題。我試圖建立一個ACL,所以在這種情況下,我有3個表,users/user_perms/permissions。用於創建數據庫表的SQL如下:學說2多對多與連接表的雙向關係有額外的領域,我需要捕獲

CREATE TABLE `users` (`ID` int(10) unsigned zerofill NOT NULL auto_increment,`username` varchar(20) NOT NULL,PRIMARY KEY (`ID`),KEY `Username` (`username`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `user_perms` (`ID` bigint(20) unsigned zerofill NOT NULL auto_increment,`userID` bigint(20) NOT NULL, `permID` bigint(20) NOT NULL,`value` tinyint(1) NOT NULL default '0', `addDate` datetime NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `userID` (`userID`,`permID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `permissions` (`ID` bigint(20) unsigned zerofill NOT NULL auto_increment,`permKey` varchar(30) NOT NULL,`permName` varchar(30) NOT NULL, PRIMARY KEY (`ID`),UNIQUE KEY `permKey` (`permKey`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

正如你所看到的,user_perms作爲用戶和可用的權限之間的連接表,但它也包含了一個「值」字段,它是允許/拒絕該特定權限的值。我瞭解如何執行標準的多對多雙向關係,但我如何能夠捕獲user_perms價值領域?感謝您與這些傢伙的幫助!

回答