0

我正在构建一个软件,让我有负责管理合同的用户。每个用户只能看到他们负责的合同。如何在用户之间共享信息?

现在,我想实现一个共享功能,用户可以决定与其他用户共享某些合同详细信息,以便其他用户现在可以在他的合同列表中看到共享合同。

但首先,我想确保我在数据库方面正确实施这一点。

因此,在这一刻,我有关于用户和合同之间的关系如下:

user(1)管理contracts(1 .. *)

并实现共享功能,我增加了以下内容:

user(0 .. *)可以看到contracts(0 .. *)

这就造成了新表,我叫SharedContrac TS。此表将存储现在可以访问共享合同的合同和合同ID的用户的用户ID。

所以现在会发生的是,无论何时用户A决定与用户B分享他的合同细节,SharedContracts表将用于存储这些数据。

并且在用户B下次登录时,系统将通过查询SharedContracts表来检查他是否拥有共享合同。系统将选择与其用户ID相关联的所有合同ID。

我想知道这是否是实现此功能的正确方法?有没有其他方法?如果它仍然如此,我会遇到一些问题吗?

回答

0

我认为你提出的架构应该没问题。我建议的唯一修改是在SharedContracts表中包括共享合同的用户以及共享的收件人的ID。这将允许共享合同的用户在以后撤销该共享。

SharedContracts

+----------+------------------+------------+ 
| SharerId | ShareRecipientId | ContractId | 
+----------+------------------+------------+ 
|  1 |    2 |   1 | 
+----------+------------------+------------+