背景:
两个项目(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
如果文档中的单个行不在电子邮件和字母之间共享,则最好有单独的表格开头。你的回答我不清楚。我无法毫不含糊地解析“不同的文件链接到电子邮件和信件”。 –