在資料庫設計時,存在多張表有關係時該怎麼設計為最優

時間 2021-10-14 22:24:14

1樓:

所謂的三正規化瞭解就行,完全照做死得快

像你這種表,一定要先定義需求

比如使用者有多個角色,就需要建立一個使用者角色對應表比如使用者只有一個角色,那在使用者表加個欄位就行另外最好不要弄什麼外來鍵之類的,原來我也弄,後來煩得要死,總是約束錯誤之類的,編個程式都不省心,結果全給去了,只要邏輯沒有錯誤,資料就不會出錯。

2樓:匿名使用者

我公司是做軟體的 也設計到資料庫的設計 剛好你說的 我們已經設計好了 而且我們不僅有你說的這些還有其他的

那麼現在就說說你應該怎麼做吧:需要3個表

第一:使用者表 主要欄位 id,name,age第二:角色表 主要欄位id,name

第三:使用者角色表 table_userrole 主要欄位:id,userid,roleid

說明:userid關聯使用者表的id,roleid關聯角色表的id好處:擴充套件性好 一個使用者對應一個角色或對應多個角色沒什麼區別 便於管理 而且都是通過id管理(id一般是主鍵 有聚集索引 速度也快)

有問題可以隨時找我 希望解決了樓主的問題

3樓:厙曼冬

根據e-r模型,使用者和角色是多對多的關係,所以,需要另建一張表儲存他們之間的關係,才可以達到3nf。架構合理,擴充套件性才好,生命力才強

4樓:

只保留對方表的主鍵id 就可以了,設定外來鍵

資料庫表設計,一張表和多張表有關係,並且是多對多關係 200

5樓:長啊長就知道了

班級表(class): id,class_name學生表(student):id,student_name,class_id

老師表(teacher):id,name

成績表(score):id,kecheng_id,stu_id,score

課程表(kecheng):id,kecheng_name老師班級表(teacher_class):id,class_id,teacher_id

表關聯設計思想:

1-1,外來鍵放在那個表都可以,一般放在改動小的1-n,n-1,吧1的id放在n的裡面

n-n,需要第三張表來存放兩者id

班級-學生:1-n

班級-老師:n-n

另外現在幾乎不使用實體外來鍵,而採用邏輯外來鍵,方便修改

6樓:匿名使用者

單表的就不詳細說了

列舉一個吧,就比如班級表

class_id(主鍵)

class_name

class_studentnumber

//老師表和學生表也是一樣

在此基礎上,再新增下表

老師班級表

teacher_id

class_id

student_id

teacher_name

teacher_***

其中主鍵為:teacher_id和class_id雙主鍵,就可以實現多對多關係

7樓:super樂樂兒

設計雞毛。你就告訴你們老師。 你想查幾個表,想要什麼樣的結果,我給你寫sql!!!!!

一個資料庫設計的問題,一對多關係,如何設計表? 基礎類

8樓:匿名使用者

一個表就可以(上級部門編號,本部門編號,名稱)

9樓:匿名使用者

不是很明白 sdhylj(青鋒-ss)的意思。。 用關係模式寫出來看看好嗎??

10樓:匿名使用者

一個是部門碼錶(dept_no,dept_name),主鍵為dept_no 一個是職位碼錶(position_no,position_name,dept_no),主鍵為position_no 這兩個表的結構對整個公司的構架來說非常重要

11樓:匿名使用者

因為我這裡沒有涉及到員工職位。。 只涉及到部門

請問資料庫在建立表的時候如何設計表關係,一對一,一對多,多對多 請高手舉例說明。謝謝!!!

12樓:匿名使用者

1、一對一可以兩個實體設計在一個資料庫中l例如設計一個夫妻表,裡面放丈夫和妻子

2、一對多可以建兩張表,將一這一方的主鍵作為多那一方的外來鍵,例如一個學生表可以加一個欄位指向班級(班級與學生一對多的關係)

3、多對多可以多加一張中間表,將另外兩個表的主鍵放到這個表中(如教師和學生就是多對多的關係)

希望這樣講對你有點幫助!

13樓:匿名使用者

例1:學生選修課程

學生表 (主鍵 學生id)

課程表 (主鍵 課程id)

學生選課表 (聯合主鍵 學生id 課程id)學生表與課程表是實體資料表,學生選課表就是這兩個實體物件間的對應關係,能過這個關係表可以建立起一個學生選修多門課程的關係。。。

例2:使用者帳戶許可權分配

帳戶資訊表 (主鍵 帳戶id)

角色資訊表 (主鍵 角色id)

為了使一個帳戶可被指定多重角色,還需要一個能將“帳戶資訊表”和“角色資訊表”關聯起來的“帳戶角色表(聯合主鍵 帳戶資訊id 角色資訊id)”

14樓:匿名使用者

一對一:我有一個身份證號 ;

一對多:我有多張銀行卡;

多對多:我是招行、交行、建行的客戶,但是這些銀行使用者均過億。

15樓:匿名使用者

你把因果關係弄倒了,不是建立表的時間選用這樣的關係,而是我們根據現實世界中設計出這樣的關係而建立的表,也就是說我們設計資料庫的目的是解決現實中的問題的,而不是你說的為了設計讓現實去適應系統,而是系統必須適合現實.

關於資料庫設計,先從現實分析e-r(實體-聯絡)模型,資料庫建立的標準就是這個e-r圖的.是現實決定了我們使用的表關係.然後從這個e-r進行資料庫的建立.

所以這些關係都**於現實.

所以這個問題,可以檢視一下資料庫設計,e-r分析等內容.不是一兩個例子能給你說清楚的!

資料庫設計時,表越多是不是越好呢?

16樓:匿名使用者

當然不是,1樓說得很專業,就是說只要表間建立合理的關係後,表的數量少點也可以

17樓:匿名使用者

保持一定的冗餘就可以了,並且設計表的時候要考慮以後的擴充套件性

18樓:匿名使用者

滿足第3正規化就可以了

證明你設計得很完美

資料庫設計一對多的時候外來鍵為什麼設計在多的那張表上

19樓:

不然設計在哪?給“一”的那張表設計500個欄位,分別存放它對應的500個“多”表專案的id?

在資料庫設計器中,建立兩個表之間的“一對多關係”應滿足的條件是什麼

20樓:匿名使用者

在資料庫的兩個表間建立永久聯絡時,要求兩個表的索引中至少有一個是主索引。必須先選擇父表的主索引,而子表中的索引型別決定了要建立的永久聯絡的型別。如果子表中的索引型別是主索引或候選索引,則建立起來的就是一對一關係。

如果子表中的索引型別是普通索引,則建立起來的就是一對多關係。

21樓:匿名使用者

對應"多"的表中有一個外來鍵,指向"一"的表的主鍵

資料庫為什麼要建立表間關係,如何在資料庫中建立表?

長夜熒熒 掌握資料庫結構的建立方式2 表間的關聯關係實驗步驟 一 建立資料庫。1 在專案管理器中建立資料庫。首先選擇資料庫,然後單擊 新建 建立資料庫,出現的介面提示使用者輸入資料庫的名稱,按要求輸入後單擊 儲存 則完成資料庫的建立,並開啟i 資料庫設計器 2 從 新建 對話方塊建立資料庫。單擊工具...

資料庫設計使用者表

id username password message type自增欄位 登入名 密碼 資訊 區分是客戶或商家或運營商 範例 id username password message type1 運營小王 123456 完美時空商務總監 1 先要確定一個賬戶只能是存在一種角色還是可以三種角色同時存...

設計表時,ID欄位在資料庫中設定為自增好嗎?能詳細說明原因嗎

設計表時對於唯一標識欄位根據資料表的增長情況可以選擇是自增還是newid sqlserver 自增整型欄位對於表資料行很大的情況下不建議用,因為總會有數值不夠用的時候 但自增欄位有個好處,對於流水記錄可以很方便記錄順序記錄 另外時間戳也是個不錯的選擇 另外選擇newid sqlserver 即gui...