多個表之間是有關係的,那麼關係靠誰來維護?
1.1 一對多關係
乙個表中的一天資料對應另乙個表中的多條資料,比如:
客戶和訂單:乙個客戶可以有多張訂單
分類和商品:乙個種類對應多種商品
部門和員工:乙個部門裡有多名員工 …
建表原則:在「多」的一方(客戶、商品、員工)建立乙個字段,字段作為外來鍵指向「一」的一方的主鍵.
例如: 乙個人有多本書
-- 書表
create
table
`book` (
`bid`
intnot
null,
`title`
varchar(40) not
null,
`author`
varchar(30) default
null,
`edition`
varchar(20) default
null,
`init_price`
double(6,2) not
null,
`id`
intnot
null,
primary
key (`bid`)
constraint
`fk_id_person`
foreign
key (`id`) references
`person` (`id`)
) engine=innodb default charset=utf8
-- 人類表
create
table
`person` (
`id`
intprimary
key,
`name`
varchar(30) not
null,
) engine=innodb default charset=utf8
1.2 多對多關係
乙個a物件可以對應多個b物件,乙個b物件可以對應多個a物件
例如:乙個學生可以選多門課程,一門課程有多名學生
建表原則:需要建立第三張表,中間表中至少兩個字段,這兩個字段分別作為外來鍵指向各自一方的主鍵.
-- 課程表
create
table
`lesson`(
`id`
intprimary
key,
`name`
varchar(40),
...)-- 學生表
create
table
`student`(
`uid`
intprimary
key,
`name`
varchar(40),
...)-- 關聯表
create
table
`s_l`(
`id`
int,
`uid`
int,
primary
key(id,uid),
constraint
`fk_id`
foreign
key (`id`) references
`lesson` (`id`),
constraint
`fk_uid`
foreign
key (`uid`) references
`student` (`uid`)
)
1.3 一對一關係
在實際的開發中應用不多.因為一對一可以建立成一張表.
建表原則:主鍵對應:讓一對一的雙方的主鍵進行建立關係.
例如 : 乙個使用者對應乙個使用者資訊表,乙個使用者資訊表對應乙個使用者
-- 使用者表
create
table
`users` (
`uid`
int(11) not
null auto_increment,
`username`
varchar(30) default
null,
`password`
varchar(30) default
null,
primary
key (`uid`)
)-- 使用者資訊表
create
table
`user_info` (
`id`
int(11) not
null,
`uname`
varchar(30) default
null,
`age`
int(11) default
null,
`gender`
varchar(3) default
null,
`birthday`
date
default
null,
`phone` long default
null,
`e_mail`
varchar(30) default
null,
`head_portrait` blob,
primary
key (`id`),
constraint
`fk_id`
foreign
key (`id`) references
`users` (`uid`)
)
資料庫多表關係
在生活中,物體有多種多樣的關聯關係,這也體現在資料表中。在資料表的設計中,不同表代表的實體和其他表都有以下三種關係 一對一 一對多 多對一 多對多。表與表的關係的合理程度,直接影響了專案的完成度和執行效能。1 一對一關係 例如 乙個人只有一張身份證 一張身份證只能對應乙個人。2 一對多 多對一關係 ...
資料庫(六) 多表關係
多表問題其實可以把它變成兩個表之間的關係 就像上一節我們提到的外來鍵,就是兩個表之間的關係 所以對於多表之間的關係,我們可以化繁為簡討論兩個表之間的關係 表與表之間的關係就好像數學函式的y和x的關係,也分為三種 一對一,多對一,多對多 怎麼說呢?其實上一節我們做的那個外來鍵表就是乙個多對一模式 怎麼...
MySQL資料庫操作(四) 多表之間的關係
個人部落格 haichenyi.com。感謝關注 1 一張表可以有多個外來鍵 2 外來鍵是表的主鍵,可以是別的表,也可以是本身 少見 3 外來鍵可以為null,可以重複,但是不能不存在,必須要查的到 建立語法foreign key 本表的列名 references 關聯的表名 關聯表的主鍵 建立乙個...