2012-12-04 43 views
0

我的db實驗室有一個大學系統項目。 我應該有一個唯一的登錄頁面,用於所有3種用戶類型:1.學生2.教師3.管理員需要爲大學設計數據庫的想法 - Messeging系統問題

我已經將它們分成3個表格(每個表格都有其獨特的屬性)。

我的問題:

  1. 當有人試圖登錄如何檢查(該表應檢查以及如何防止重複的用戶名然而他們在3個不同的表)?

  2. 如何把這些3種類型之間的消息雖然沒有中央的獨特表中查找(3個表,應檢查並沒有用戶名重複的機率)

我現在的ERD:

回答

0

您應該讓所有用戶在一個表格中填寫他們的類型,並在單獨的表格中填寫其他信息。

+0

我應該如何將它鏈接到這些表?答案:登錄(用戶名,密碼)和學生(forgienkey:用戶名,名字,姓氏,主要)&... – John

+0

我是對的嗎? ..... – John

+0

我可能會爲登錄表創建一個新的主要自動編號密鑰,並將其用作其他表的外鍵 – wcm

0

您在模式中沒有顯示學生和教授之間的差異。 也沒有'主管'表。

我會建議將表重命名爲用戶 - 並添加一個類型或角色列。

也:

教授應該是多對多與課程也 - 假設一個教授能教一個以上的課程。

如果您將用戶組合在一起,那麼在用戶和課程之間的關聯中也應該有一個角色,用於確定該用戶是否是該課程的教授,學生,審計員,助理,等等

+0

是的,我的ERD尚未完成。如果我將它們全部合併到一張表中,那麼學生和課程之間就沒有直接的關係。我的意思是,會有多種關係類型。 – John

+0

特殊屬性的示例可以是「主要」。 – John

+0

在這個例子中,我們假設每個課程只有一位教授。它會解決你發現的問題嗎(課程<-->教授)? – John