今天學習了資料表多對多,由於有圖理解起來也輕鬆了很多,
使用聯合主鍵進行多對多表的關係的管理(中間表)
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)
);/*關聯角色到選單*/
e-r圖 (entry-relationship 實體關係圖)
寫入表中幾行資料進行基本分析
insert into users values('u001','jack','1234');進行查詢insert into users values('u002','張三','4321');
insert into users values('u003','tom','1111');
insert into roles values('r001','管理員','');
insert into roles values('r002','教師','');
insert into roleuser values('u001','r001');
insert into roleuser values('u002','r002');
insert into menus values('m001','系統管理','/sys.jsp');
insert into menus values('m002','使用者管理','/user.jsp');
insert into menus values('m003','角色管理','/role.jsp');
insert into rolemenu values('m001','r001');
insert into rolemenu values('m002','r001');
insert into rolemenu values('m003','r001');
insert into rolemenu values('m003','r002');
/*查詢某個人擁有某個角色*/select u.name,r.name
from users u inner join roleuser ru on u.id=ru.uid
inner join roles r on ru.rid=r.id;
/*某角色擁有某選單*/
select r.name,m.name
from roles r inner join rolemenu rm on r.id=rm.rid
inner join menus m on rm.mid=m.id;
/*查詢某人擁有某個選單*/
select m.*
from users u inner join roleuser ru on u.id=ru.uid
inner join roles r on ru.rid=r.id
inner join rolemenu rm on r.id=rm.rid
inner join menus m on rm.mid=m.id;
資料表與簡單java類(多對多)
定義乙個學生選課的操作表 三張表 學生表 編號,姓名,年齡 課程表 課程編號,課程名稱,學分 學生 課程關聯表 學生編號,課程編號,成績。要求可以輸出如下資訊 1 可以找到一門課程參加此課程的所有資訊以及成績 2 根據乙個學生,找到所參加的所有課程和每門課程的成績 第一步 定義出基本類,暫不考慮所有...
資料表與簡單Java類(多對多)
定義乙個學生選課的操作表 三張資料表 要求 可以實現如下的資訊輸出 定義出基本類,暫時不考慮所有的關係class student public student int stuid,string name,int age public string getinfo class course publi...
在MySQL資料庫建立多對多的資料表關係
一 問題 在業務中遇到這樣的情況 我有兩張無關表student和course。student表中的字段是 stu id 和stu name。如圖 course表中的字段是cour id和cour name。如圖 我想要查詢某個同學選了哪些課和某門課被哪些同學選了。這是資料庫中典型的多對多的問題,二 ...