我正在嘗試爲非常多樣化的互連對象集開發數據模型。隨着應用程序的成熟,支持的對象類型將顯着增加。我想避免在添加新的對象類型時不得不修改模型/模式。靈活的對象關係
作爲一個簡單的例子,假設我從一個人和建築模型開始。建築物可以擁有多個所有者;一個人可以擁有多個建築物;一個人可以住在房子裏,在辦公室工作......未來的版本可能會增加汽車和公司。汽車可以擁有車主,公司可以製造汽車,人們可以爲公司工作等。大多數關係將是多對多的,有些將是一對多的,很少有一對是一對一的。儘管像「所有者」,「僱主」或「製造」這樣的概念可以被視爲「建築」,「公司」或「汽車」對象的屬性,但我不想將數據模型重新定義爲支持新的屬性類型。
我目前的想法是模擬這個類似於一個圖,其中每一塊數據是它自己的節點。節點對象將是非常簡單的:
- 唯一標識符
- 名稱(人表示)
- 節點類型
- 關係
擴展前面的例子中,可能的節點類型將是:
- 人
- 車
- 公司 大廈
的關係應該是:
- 節點A
- 節點B
- 關係類型 - 應用,擁有,已經是, etc
我有幾個問題:
- 這種方法有什麼缺點嗎?
- 有沒有描述這個的現有模式或模型?
- 有沒有更好的方法?