[JavaWeb-MySQL]多表关系介绍
生活随笔
收集整理的這篇文章主要介紹了
[JavaWeb-MySQL]多表关系介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
多表之間的關系
1. 分類:1. 一對一(了解):* 如:人和身份證* 分析:一個人只有一個身份證,一個身份證只能對應一個人2. 一對多(多對一):* 如:部門和員工* 分析:一個部門有多個員工,一個員工只能對應一個部門3. 多對多:* 如:學生和課程* 分析:一個學生可以選擇很多門課程,一個課程也可以被很多學生選擇2. 實現關系:1. 一對多(多對一):* 如:部門和員工* 實現方式:在多的一方建立外鍵,指向一的一方的主鍵。案例:
-- 創建旅游線路分類表 tab_category-- cid 旅游線路分類主鍵,自動增長-- cname 旅游線路分類名稱非空,唯一,字符串 100CREATE TABLE tab_category (cid INT PRIMARY KEY AUTO_INCREMENT,cname VARCHAR(100) NOT NULL UNIQUE);-- 創建旅游線路表 tab_route/*rid 旅游線路主鍵,自動增長rname 旅游線路名稱非空,唯一,字符串 100price 價格rdate 上架時間,日期類型cid 外鍵,所屬分類*/CREATE TABLE tab_route(rid INT PRIMARY KEY AUTO_INCREMENT,rname VARCHAR(100) NOT NULL UNIQUE,price DOUBLE,rdate DATE,cid INT,FOREIGN KEY (cid) REFERENCES tab_category(cid));/*創建用戶表 tab_useruid 用戶主鍵,自增長username 用戶名長度 100,唯一,非空password 密碼長度 30,非空name 真實姓名長度 100birthday 生日sex 性別,定長字符串 1telephone 手機號,字符串 11email 郵箱,字符串長度 100*/CREATE TABLE tab_user (uid INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) UNIQUE NOT NULL,PASSWORD VARCHAR(30) NOT NULL,NAME VARCHAR(100),birthday DATE,sex CHAR(1) DEFAULT '男',telephone VARCHAR(11),email VARCHAR(100));/*創建收藏表 tab_favoriterid 旅游線路 id,外鍵date 收藏時間uid 用戶 id,外鍵rid 和 uid 不能重復,設置復合主鍵,同一個用戶不能收藏同一個線路兩次*/CREATE TABLE tab_favorite (rid INT, -- 線路idDATE DATETIME,uid INT, -- 用戶id-- 創建復合主鍵PRIMARY KEY(rid,uid), -- 聯合主鍵FOREIGN KEY (rid) REFERENCES tab_route(rid),FOREIGN KEY(uid) REFERENCES tab_user(uid));總結
以上是生活随笔為你收集整理的[JavaWeb-MySQL]多表关系介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吉吉影音怎么安装
- 下一篇: [JavaWeb-MySQL]数据库的备