2011-09-05 90 views
2

我們正在開發的程序之一正在不斷增長,我們正處於一個可以重新訪問現有數據庫並花時間「嘗試正確」的階段。我們正在研究的其中一件事是數據模型,以及我們如何模擬「派對」等等。我們已經做了直到現在確定來自交易記錄的客戶詳細信息,但是現在我們希望存儲更多的細節,並希望將我們對工作人員,供應商和成員等的常用數據進行組合。實現派對模型的正確方法是什麼?

每一方都是個人或團體,但也可以有一個或多個角色,如僱主,客戶,會員等。我認識到,我們模型中的各方不存在與另一方的關係(員工需要僱主,客戶需要成員需要俱樂部等),既然我不想讓人們添加像'僱主 - 客戶'或'會員 - 分包商'這樣的無聊關係,我現在有一張名爲relationship的表,它預先定義了哪些角色可以一起去。我以前沒有見過這個,我想知道,我們是否在正確的軌道上? (這裏是一個簡化的EER圖表,以顯示我們是怎麼想的,這可能表示)

Party model EER diagram

我已經看了看方模型的原理的各種文檔,但我一直沒能找到任何(開放源代碼)的例子,說明它在實踐中的實際外觀。任何人都可以推薦一個源代碼(最好在MySQL中),或者分享一下你的經驗,看看如何實現它,或許可以使用表結構或應用程序代碼?

回答

1

This SO answer有各方的執行。

Another answer,將這種模式應用到文章和博客文章和故事中,可以解釋評論中的一些細微之處。

+0

謝謝 - 我讀過一些其他的答案,所以這些鏈接是讚賞 - 特別是對'CHECK'約束的提示。我認爲你沒有看到任何不尋常的東西,因爲我從'party'中分離出'角色',並使其成爲上圖中「關係」的特徵? – boatingcow

+0

通常情況下,僱主成爲組織和員工是個人的要求將從一個表格開始,該表格有一個外鍵引用組織表(我猜,在你的模型中是「組」)和一個外鍵引用到個人的桌子。我認爲這比將各方之間的所有關係放入單個表格更簡單,更容易理解,更容易維護並更容易擴展。事實上,看起來你根本不需要表格「個人」和「羣體」,這可能不是一件好事。 –

+0

現在我們被困在MySQL上了,所以看起來CHECK約束已經失效,並且應用程序級別的驗證在!感謝您的評論 - 這讓我想到了我們是否需要角色表,因爲應用程序已經知道根據上下文查找哪個子方。順便提一句,僱主不是一個團體,僱員是一個人等等,但是要知道他們是否是一個人是非常有用的。個人和小組與API一起存在,並且該圖無論如何都是該問題的簡化。 – boatingcow

相關問題