背景:
兩個項目(A & B)在設計時同時需要一個新表(稱爲DocumentStore
)來存放文件/文件在postgres下。數據庫設計 - 兩個項目應該共享同一個表嗎?
但周圍的文檔存儲業務邏輯是項目中的& B之間的不同,這意味着約DocumentStore
關係是A & B.
之間的不同讓我們把這個有點更具體,見下面的例子:
文檔存儲表結構看起來是相同的,而不限制/外鍵:
表DocumentStore
DocUUID //unique Id for this document, PK, FK to other table depends on project
fileName //file name
fileType //file type
FileContent //store file as blog
在項目一個,DocumentStore.DocUUID
引用Email.EmailUUID
:
注意是有一個電子郵件之間一對多的關係 - 通過FK> DocumentStore。
表Email
EmailUUID //PK
subject
title
...
在項目乙,DocumentStore.DocUUID
引用Letter.LetterUUID
:
注意是有一個字母之間一對多的關係 - 通過FK> DocumentStore。
表Letter
LetterUUID //PK
UserId
rightId
...
Email
和Letter
是因爲業務邏輯的不同完全不同。
我的問題是:
我應該分享項目之間的這種
DocumentStore
表格中的& B'如果1.的答案是肯定的,那麼如何?通過postgres繼承?
如果1.的答案爲否,我應該創建兩個具有相同結構但不同表名和不同外鍵的表嗎?一個用於項目A和項目B?
的核心問題是:在同一個文件鏈接到郵件*和*信往往?多久? –
@ErwinBrandstetter:不同的文件鏈接到電子郵件和信件。對於信箱(可能是大多數情況下),對於電子郵件案例(可能是2/10箱)的情況會更少。我不確定爲什麼這是核心問題?你能否詳細說明一下? – Gob00st
如果文檔中的單個行不在電子郵件和字母之間共享,則最好有單獨的表格開頭。你的回答我不清楚。我無法毫不含糊地解析「不同的文件鏈接到電子郵件和信件」。 –