2012-08-01 62 views
2

我正在尋找關於建模各種實體及其文檔(二進制文件,如PDF,TIFF等)之間關係的最佳實踐的一些建議。這些實體是存儲在PostgreSQL數據庫中的標準JPA/Hibernate。文檔本身將存儲在MongoDb數據庫中。如何建模不同父實體和一個普通子實體之間的關係

該計劃是創建一個子實體來表示該文檔,該文檔包含需要檢索的二進制數據的id。但是這種關係會是什麼?

如果我簡單地創建一個,如果這些文檔實體爲每個父實體,那麼一個簡單的一對多關係就可以工作,但這似乎是多餘的。

我可以簡單地放一個表示文檔屬於哪個實體的「type」列,然後用一個名爲「id =?and type =?」的查詢來查詢文檔表。我想這會工作,但有一些關於我對任何一個都不是瘋狂的 - 只是不能把我的手指放在它:)也許這很好。

我看過的另一個選項(雖然我承認我以前從未使用過它,需要更多地研究它)是使用單向一對多連接表。但是,我不認爲這會起作用,因爲不能保證不會有重複的父鍵。我對所有基本關係表主鍵使用單個序列,這應該保證它,但它仍然聽起來不是一個好主意。

最後,我考慮過是否創建了一個實體,然後對每個父實體進行擴展,但我認爲這會有相同的缺陷 - 非唯一父ID的理論存在。

在我做出最終決定之前,我想看看社區可能提供的其他建議。

在此先感謝您的想法。

+0

你找到答案了嗎?我也有同樣的問題。 – ps0604 2015-01-19 17:47:39

回答

0

如果我簡單地創建一個,如果這些文檔實體爲每個父實體,那麼一個簡單的一對多關係就可以工作,但這似乎是多餘的。

我有點困惑。如果您爲每位家長創建文檔,是不是一對一而不是一對多?這聽起來像你想要一個一對多的關係。在這種情況下,您只能爲引用它的所有父實體創建單個文檔。

+0

對不起,如果我不清楚。每個母公司與其文件有一對多的關係。例如,商家可能擁有一套文件,如應用程序和合同。然後,每個客戶也將擁有各種文件,如申請表,信用報告等。但是,如果我有12個父實體,那麼我將不得不爲這些文檔定義12個子實體。這就是我想要避免的。我正在尋找一種很好的方法來定義一個我可以用於所有父實體的文檔實體。那有意義嗎? – 2012-08-02 13:50:15

相關問題