2013-03-09 108 views
0

我只是試圖做任務,並堅持規範化。 (這應該是合乎邏輯的ERD)SQL另一個規範化的方式

enter image description here

是它歸在這裏更多可能的方式? 我只是堅持下去。 對不起,我只是在組成員表偏出近的一組ID明星

enter image description here

+1

不確定Stack Overflow是否是最好的Stack Exchange站點;你是否應該正常化可能取決於你正在處理的問題。有些事情可以嘗試:(1)小組成員,小組負責人和主管可以被歸納爲「角色」(N:N)分配給「人員」; (2)一些個人信息可以移動到單獨的表格中,例如'Addresses'。這可能有意義,例如當時可能有些人住在一起。 – stakx 2013-03-09 21:24:09

+0

你能解釋一些關於第一個的內容嗎?當我做到這一點時,我將如何將這個人桌連接到另外三個人?比如我該如何填寫人員表格中的所有其他表格才能獲取正確信息的數據? – 2013-03-09 21:30:56

+0

'領導電話號碼''緊急聯絡電話號碼'和'當前手機號碼'是否總是一樣?或者緊急聯繫電話號碼與該人的普通電話號碼有什麼不同? 個人會員是參加一個活動,還是總是一個組? 如果我們要確定您的模型是否正確,我們將不得不做出很多假設。 – JodyT 2013-03-09 22:13:01

回答

0

GroupMember,GroupLeader和監督應是一個Person表之間的關係。也許像下面這樣的東西?

Person (
    id 
    name 
    surname 
    date of birth 
    gender 
    home address 
    emergency contact number 
    comment field 
) 

Activity (
    id 
    type of activity 
    activity description 
    date 
    morning or afternoon 
    supervisor -> Person 
) 


ActivityParticipant (
    activity id -> Activity 
    person id -> Person 
) 

Group (
    id 
    name 
    start date of stay 
    end date of stay 
    (amount of people in group?) 
) 

GroupMember (
    person id -> Person 
    group id -> Group 
) 

Group Leader (
    group id -> Group 
    person id -> Person 
) 

Chalet (
    id 
    Chalet number 
    Chalet name 
    number it sleeps 
    price per individual 
) 

Accomodation (
    group id -> Group 
    chalet id -> Chalet 
) 
+0

你的意思是需要創建另一個表?稱爲person? – 2013-03-09 21:20:39

+0

是的,然後至少拉動Name,(姓氏?)和電話號碼(這些是重複的領域,即可以規範化)。將所有其他人員相關領域也放在該表中也是很自然的。 – thebjorn 2013-03-09 21:24:13

+0

嗯,我明白我不擅長它,但我怎麼能把名字,姓電話號碼等等放在一張桌子上,並連接3張桌子,如果他們有不同的名字.....我只是不能得到我該如何填寫表格才能使其工作。 – 2013-03-09 21:28:43

0

關係數據庫不支持繼承

三種可能的方法,我知道關閉如何解決這個問題是:

1.Single Table Inheritance

2.Class Table Inheritance(這有點像@thebjorn建議的那樣)。

3.Concrete Table Inheritance(這是你現在所擁有的,我不使用此解決方案看不出什麼問題。)

編輯:

我看你把它改成LOGICAL ERD,這當然是關於物理模型。

+0

所以我做錯邏輯ERD? – 2013-03-09 22:01:21

+0

不,如果您想要邏輯或物理ERD,這是您自己的決定。我的意思是我的文章中的解決方案是在您將邏輯模型更改爲物理模型時應用的。在你的邏輯模型中繼承是不常見的。 – JodyT 2013-03-09 22:04:37

+0

我需要邏輯ERD,所以我想這對於邏輯ERD是正確的? – 2013-03-09 22:06:34