關(guān)系型數(shù)據(jù)庫的設(shè)計規(guī)則詳解
E-R(Entity-relationship,實體-聯(lián)系)模型中有三個主要概念是:實體集、屬性、聯(lián)系集。
一個實體集(class)對應(yīng)于數(shù)據(jù)庫中的一個表,一個實體(instance)則對應(yīng)數(shù)據(jù)庫表中的一行,也稱一條記錄。一個屬性對應(yīng)于數(shù)據(jù)庫表中的一列(column),也稱一個字段。
ORM思想(Object Relational Mapping)體現(xiàn):
數(shù)據(jù)庫表 ? Java或Python的一個類
表中的一條數(shù)據(jù) ? 類中的一個對象(或?qū)嶓w)
表中的一個類 ? 類中的一個字段、屬性(field)
表關(guān)系設(shè)計
表與表之間的數(shù)據(jù)記錄有關(guān)系(relationship)。現(xiàn)實世界中的各種實體以及實體之間的各種聯(lián)系均用關(guān)系模型來表示。表關(guān)系的四種:
1、一對一關(guān)聯(lián)(one-to-one)
在實際的開發(fā)中應(yīng)用不多,因為一對一可以創(chuàng)建成一張表。
舉例:設(shè)計學(xué)生表:學(xué)號、姓名、手機號碼、班級、系別、身份證號碼、家庭住址、籍貫、緊急聯(lián)系人、…
拆為兩個表:兩個表的記錄是一一對應(yīng)關(guān)系。
基礎(chǔ)信息表(常用信息):學(xué)號、姓名、手機號碼、班級、系別檔案信息表(不常用信息):學(xué)號、身份證號碼、家庭住址、籍貫、緊急聯(lián)系人、…兩種建表原則: 外鍵唯一:主表的主鍵和從表的外鍵(唯一),形成主外鍵關(guān)系,外鍵唯一。外鍵是主鍵:主表的主鍵和從表的主鍵,形成主外鍵關(guān)系。

2、一對多關(guān)系(one-to-many)
常見實例場景:客戶表和訂單表,分類表和商品表,部門表和員工表。
舉例: 員工表:編號、姓名、…、所屬部門部門表:編號、名稱、簡介 一對多建表原則:在從表(多方)創(chuàng)建一個字段,字段作為外鍵指向主表(一方)的主鍵

3、多對多(many-to-many)
要表示多對多關(guān)系,必須創(chuàng)建第三個表,該表通常稱為聯(lián)接表,它將多對多關(guān)系劃分為兩個一對多關(guān)系。將這兩個表的主鍵都插入到第三個表中。
舉例1:學(xué)生-課程

學(xué)生信息表:一行代表一個學(xué)生的信息(學(xué)號、姓名、手機號碼、班級、系別…)
課程信息表:一行代表一個課程的信息(課程編號、授課老師、簡介…)
選課信息表:一個學(xué)生可以選多門課,一門課可以被多個學(xué)生選擇
學(xué)號 課程編號 1 1001 2 1001 1 1002
舉例2:產(chǎn)品-訂單
“訂單”表和“產(chǎn)品”表有一種多對多的關(guān)系,這種關(guān)系是通過與“訂單明細”表建立兩個一對多關(guān)系來定義的。一個訂單可以有多個產(chǎn)品,每個產(chǎn)品可以出現(xiàn)在多個訂單中。
產(chǎn)品表:“產(chǎn)品”表中的每條記錄表示一個產(chǎn)品。訂單表:“訂單”表中的每條記錄表示一個訂單。訂單明細表:每個產(chǎn)品可以與“訂單”表中的多條記錄對應(yīng),即出現(xiàn)在多個訂單中。一個訂單可以與“產(chǎn)品”表中的多條記錄對應(yīng),即包含多個產(chǎn)品。
舉例3:用戶-角色
多對多關(guān)系建表原則:需要創(chuàng)建第三張表,中間表中至少兩個字段,這兩個字段分別作為外鍵指向各自一方的主鍵。
4、自我引用(Self reference)

到此這篇關(guān)于關(guān)系型數(shù)據(jù)庫的設(shè)計規(guī)則詳解的文章就介紹到這了,更多相關(guān)關(guān)系型數(shù)據(jù)庫設(shè)計規(guī)則內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信