0

我設計有關的寵物分類廣告網站,將有廣告的3(主)類:層次模型

A- Sale 
B- Breeding 
C- Jobs 

我現在面臨的問題是,所有3個廣告類別,有一些共同的東西,但他們也有一些差異。

例如,類別A,B和C都具有以下共同點:

category_id 
ad_id 
user_id 
location 

然而,B類廣告不能被歸類爲 「尋找/出售」,而乙& C能。此外,每個類別都有其自己的子類別。例如,類別A將具有采用子類別,並且類別C的銷售子類別將具有作業子類別和服務子類別。

他們也會有一些不常見的屬性,例如類別C中的薪水。

我已經開始做這個工作,作爲一個實體的屬性值的模式,但我有幾個擔心:

  1. 難道這會影響性能?因爲用戶應該能夠根據一些獨特的屬性進行搜索。所以不會通過一張巨大的桌子查詢影響性能?

  2. 我的一個屬性是「動物」(對於A & B來說是獨特的),最初我想擁有一個動物表和一個繁殖表(類似於分類數據庫模型的位置在它自己的表中) 。但我無法想象如何用entity-attribute-model來做到這一點。

這裏的數據庫設計,我想出了:http://i.imgur.com/jyV6Cjc.png

[更新]

類表繼承讀了之後,這似乎是一個比EAV模型更適合,所以我改變了我的EER這樣:http://i.imgur.com/JWPjt23.png

  1. 招聘廣告和銷售廣告可以分爲一s「尋找/供應」,但是這些屬性之間沒有多少區別,可能只是他們的名字(例如價格與首選價格)。那麼你認爲有必要在這裏增加另一層次的繼承,否則會是一件麻煩事?

  2. 銷售廣告可以是出售寵物,收養寵物,請求領養,請求購買寵物。你認爲我應該把它們分成兩個表。採用和銷售?屬性沒有太大差異,可能只是一個不同的屬性。

+0

您沒有爲數據分析師指定足夠的信息來做出設計決策。如果該字段大部分時間不爲空,那麼您的廣告表中可以包含可爲空的字段。您也可以爲唯一字段設置[實體 - 屬性 - 值模型](http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model)。 –

+0

感謝吉爾伯特,我添加了更多的細節來澄清和指定我的問題。你能看看編輯並幫助我嗎? – Youmna

回答

1

你的問題聽起來像一個類/子類的情況。在對象建模中,設計使用了基本的繼承機制,以及擴展和修改超類的子類的設計模式。

關係建模與對象建模不同,表格設計與對象設計不同。有一些技術可以幫助縮小差距。這個區域有兩個標籤是相關的,。我將冒昧將這兩個標籤添加到您的問題中。如果你不喜歡它們,請將它們退出。

+0

謝謝Walter!你的回答指出了我正確的方向。我讀了關於類的表繼承並修改了我的圖。你可以看看它並告訴我你的想法嗎?謝謝 – Youmna