2016-09-16 52 views
0

我是ER圖新手。我正在爲用戶創建一個應用程序,通過種族,國籍和年齡等屬性查看和過濾每年的人口死亡人數。但是,我不能將所有這些屬性放在一個實體中,因爲我沒有所需的數據集將它們放在一起。例如,我有Table: race(Columns: Year, Race, Death Toll)Table: age(Columns: Year, Age Group, Death Toll)的數據集,但是,我沒有Table: race_age(Columns: Year, Race, Age Group, Death Toll)的數據集。因此,我必須分開這些實體。我意識到death_toll屬性重複所有的實體,所以我所做的是創建一個ISA層次結構。但是,我發現命名習慣很奇怪,我不知道我是否正確。請檢查我是否正確或錯誤,並引導我看到正確的圖表。謝謝人口分揀應用的ER圖

enter image description here

+1

「filtered_by_age」實際上不是一個實體。如果你正在做一個通用的ER模型,你不應該擔心數據集或過濾器。實體是東西,屬性是事物的事實,其餘的東西是不屬於ER模型的其他東西。 –

+0

是的你是對的。但是,當我們將ER模型轉換爲關係模型(根據這些實體創建表)時,我們想要填充數據時會出現問題。我們無法根據繪製的ER模型填充數據。這使得ER​​圖無意義。 – user859385

+0

好吧,這相當具有哲學性,但我個人認爲ER圖的含義是「數據實際是什麼」,而DB關係模型則意味着「我們如何組織數據庫中的數據」。它不一定是這樣的entity = table;你繪製一個ER圖來理解你的數據,然後在那之後你想出如何構建DB解決方案。但是,這開始越來越遠離你原來的問題,我不想發垃圾郵件! –

回答

0

如果我理解你的表,它們實現的函數依賴:

race: (Year, Race) -> Death Toll 
age: (Year, Age group) -> Death Toll 
race_age: (Year, Race, Age Group) -> Death Toll 

此基礎上,我將建立ER模型是這樣的:

Mortality by age and race ERD

你的表格代表年份,年齡組和種族之間的關係,死亡人數是每個人的屬性關係。密鑰的組件標識關係中的實體。