多對一關係在關聯關係中是很常見的,就比如:
乙個班級對應著多個學生,乙個學生只對應乙個班級。
一張銀行卡對應乙個人,乙個人對應多張銀行卡。
一瓶水對應乙個人,乙個人可以對應多瓶水…………
…………
想要用mysql語句建立多對一關係的話一定要弄清楚外來鍵創在哪一方。
一般都是將外來鍵創在多的一方,以免資料冗餘。
首先建立乙個班級資料庫表
create table class
( cid int(10
) not null primary key,
cname varchar(20
));
然後建立乙個學生資料庫表create table student
( sid int(10
) not null primary key,
sname varchar(20
),classid int(10
) not null
);
建立外來鍵alter table student add constraint fk_student_classid foreign key
(classid) references class
(cid)
;
至此就完成了對mysql的多對一的關聯關係的建立。
新增資料
insert into class
value(1
,'一班'),
(2,'二班'
);
insert into student value(1
,'學生1',1
),(2
,'學生2',1
),(3
,'學生3',2
),(4
,'學生4',2
);
查詢mysql> select class
.cname,student.sname from
class
inner join student on class
.cid=student.classid;+--
-----+
-------
+| cname | sname |+--
-----+
-------
+| 一班 | 學生1
|| 一班 | 學生2
|| 二班 | 學生3
|| 二班 | 學生4|+
-------
+-------+
4 rows in
set(
0.00 sec)
建立多對一關係
在資料庫設計中,很多實體之前並不是簡單的一對一關係。有些可能是多對一,多對多關係。下面的文章中以常見的客戶訂單之間的關係為例,介紹在hibernate中,如果去配置多對一的關係。1.實體分析 客戶和訂單之間是一對多的關係,或者說訂單和客戶之間是多對一的關係。按照上面的思想,可以設計出兩種方式的類關係...
一對一關係
1 共享主鍵方式 共享主鍵方式就是限制兩個資料表的主鍵使用相同的值,通過主鍵形成一對一的對映關係。如 學員的登入帳號資訊和學員的詳細分別存放到兩張不同的表中。表 持久化類 public class student public class stupwd student.hbm.xml cascade...
hibernate多對一關係對映
多對一雙向關聯 多對一與一對多 假設使用者user和idcard多對多關聯 user中存在屬性set屬性儲存多個idcard,idcard中存在user屬性 user對映檔案 idcard table指定集合表名,此處已告訴引用型別,故可省略 集合外來鍵,引用對方表中,對應我方表主鍵 也可為其他屬性...