資料庫表關係(一堆垛,多對多)

2021-09-09 04:28:58 字數 2202 閱讀 3940

1.記住,永遠記住:表與表之間關聯的唯一手段就是外來鍵

表與表之間相關聯只能通過外來鍵。

2.所以資料庫表與表之間的,一對多,多對多關係。說白了就是怎樣建立外來鍵的關係,在哪個表建立外來鍵。

通過外來鍵維持各種表之間的關係。

3.6表與表之間的關係

l 一對一:例如t_person表和

t_card

表,即人和身份證。這種情況需要找出主從關係,即誰是主表,誰是從表。人可以沒有身份證,但身份證必須要有人才行,所以人是主表,而身份證是從表。設計從表可以有兩種方案:

l 一對多(多對一):最為常見的就是一對多!一對多和多對一,這是從哪個角度去看得出來的。t_user和

t_section

的關係,從

t_user

來看就是一對多,而從

t_section

的角度來看就是多對一!這種情況都是在多方建立外來鍵!

l 多對多:例如t_stu和

t_teacher

表,即乙個學生可以有多個老師,而乙個老師也可以有多個學生。這種情況通常需要建立中間表來處理多對多關係。例如再建立一張表

t_stu_tea

表,給出兩個外來鍵,乙個相對

t_stu

表的外來鍵,另乙個相對

t_teacher

表的外來鍵。

7.編碼

伺服器傳送給客戶端的資料編碼為character_set_result,它如果是

utf8

,那麼控制台使用

gbk解碼也一定會出現亂碼。因為無法修改控制台編碼,所以只能把

character_set_result

修改為gbk。

l 修改character_set_client變數:set character_set_client=gbk;

l 修改character_set_results變數:set character_set_results=gbk;

設定編碼只對當前連線有效,這說明每次登入mysql提示符後都要去修改這兩個編碼,但可以通過修改配置檔案來處理這一問題:配置檔案路徑:d:\program files\mysql\mysql server 5.1\ my.ini

3

mysql

工具

使用mysql工具是不會出現亂碼的,因為它們會每次連線時都修改

character_set_client

、character_set_results

、character_set_connection

的編碼。這樣對

my.ini

上的配置覆蓋了,也就不會出現亂碼了。

1生成

sql指令碼

在控制台使用mysqldump命令可以用來生成指定資料庫的指令碼文字,但要注意,指令碼文字中只包含資料庫的內容,而不會存在建立資料庫的語句!所以在恢復資料時,還需要自已手動建立乙個資料庫之後再去恢復資料。

mysqldump –u使用者名稱 –p密碼 資料庫名

>

生成的指令碼檔案路徑

現在可以在c盤下找到

mydb1.sql

檔案了!

注意,mysqldump命令是在

windows

控制台下執行,無需登入

mysql

!!!

2執行

sql指令碼

執行sql指令碼需要登入

mysql

,然後進入指定資料庫,才可以執行

sql指令碼!!!

執行sql指令碼不只是用來恢復資料庫,也可以在平時編寫

sql指令碼,然後使用執行

sql

指令碼來運算元據庫!大家都知道,在黑屏下編寫

sqlsql

**,然後執行之!

source c:\mydb1.sql

注意,在執行指令碼時需要先行核查當前資料庫中的表是否與指令碼檔案中的語句有衝突!例如在指令碼檔案中存在create table a的語句,而當前資料庫中已經存在了

a表,那麼就會出錯!

mysql -uroot -p123 mydb1mysql –u使用者名稱 –p密碼 資料庫

<

要執行指令碼檔案路徑

這種方式無需登入mysql!

資料庫 表關係 多對一

如何確定表之間的關係 需要從實際需求中分析 第一步 從員工的角度來考慮 多個員工是不是可以屬於同乙個部門?員工的多條記錄是否對應部門的一條記錄?如果是 則可以確定 員工與部門是多對一 第二步 從部門的角度來考慮 多個部門是不是可以有同乙個員工?員工部門多條記錄是否對應員工的一條記錄?都不是 而是乙個...

flask 定義資料庫關係(多對多)

多對多 我們使用學生和老師來演示多對多關係 每個學生有多個老師,每個老師有多個學生。多對多關係示意圖如下 在例項程式中,student類表示學生,teacher類表示老師。在這兩個模型之間建立多對多關係後,我們需要在student類中新增乙個集合關係屬性teachers,呼叫它可以獲取某個學生的多個...

資料庫一對一,多對一,多對多的關係

關聯對映 一對多 多對一 存在最普遍的對映關係,簡單來講就如球員與球隊的關係 一對多 從球隊角度來說乙個球隊擁有多個球員 即為一對多 多對一 從球員角度來說多個球員屬於乙個球隊 即為多對一 資料表間一對多關係如下圖 關聯對映 一對一 一對一關係就如球隊與球隊所在位址之間的關係,一支球隊僅有乙個位址,...