2011-07-21 30 views
0

我有像Project,Client,Task這樣的實體,並且他們每個人都應該有帖子列表(又名討論)。問題在於,由於每個實體(項目,客戶,...)都被映射到它自己的表中,我無法通過「owner_id」來討論該實體,因爲它具有id = 1的客戶端和id = 1,討論不知道它是否屬於項目或客戶。我想避免爲客戶端和另一個獨立的討論實體爲項目..(原因後來我可能想討論添加到另一個實體,所以它不是真正的「可擴展性」)。我知道我可以將辨別器屬性(列)添加到可以區分clientDiscussion和projectDiscussion的討論中。我想知道這是否是正確的做法。你是什​​麼人?如何設計多個實體的討論

回答

0

就個人而言,它聽起來像你需要創建一個抽象的實體。

EntityType<-Entity<-EntityDiscussion->Discussion 

enter image description here

有什麼不同的項目/客戶/任務的領域?

+0

差別很大。我並不認爲客戶和項目和任務應該有共同的祖先。如果未來將討論添加到另一個實體(不共享祖先),它並不能解決問題。 – mawek

0

討論可以只涉及單個實體嗎?如果是這樣,那麼你使用鑑別器是我見過的一種方法,你已經概述了爲什麼顯而易見的替代方法對你沒有用處。

我的直覺是在現實世界中討論並不總是指單一類的東西。所以你可能也需要一個主題實體,討論中有很多主題,但仍然需要一個鑑別器。

+0

是的,討論屬於單一實體。假設我正在從事項目管理webapp - 像jira這樣的人,我希望用戶有可能爲特定項目或客戶或任務添加評論。實體本身(項目,任務)在這種情況下成爲話題。 – mawek

相關問題