我正在构建一个软件,其中我有负责管理合同的用户。每个用户只能看到他们负责的合同。
现在,我想实现一个共享功能,用户可以决定与另一个用户共享一些合同细节,因此其他用户现在可以在他的合同列表中看到一个共享合同。
但是首先,我想确保我在数据库方面正确地实现了这一点。
因此,就使用者与合约的关系而言,我现在有以下几点意见:
user (1)管理contracts (1.*)
为了实现共享功能,我添加了以下内容:
user (0..*)可以看到contracts (0.*)
这导致了一个新的表,我称之为SharedContracts。此表将存储用户的userID,用户现在将有权访问共享合同的契约和contractID。
因此,现在发生的情况是,每当用户A决定与用户B共享他的合同细节时,将使用SharedContracts表来存储这些数据。
下次用户B登录时,系统将通过查询SharedContracts表来检查他是否有共享合同。系统将选择与他的userID相关联的所有契约his。
我想知道这是否是实现这样一个功能的正确方式?还有别的办法吗?如果这样的话,我会遇到一些问题吗?
发布于 2017-05-09 17:28:55
我觉得你提议的架构会很好。我建议的唯一修改是在SharedContracts表中包括共享契约的用户和共享共享的接收方的in。这将允许共享合同的用户在稍后的日期撤销该共享。
SharedContracts
+----------+------------------+------------+
| SharerId | ShareRecipientId | ContractId |
+----------+------------------+------------+
| 1 | 2 | 1 |
+----------+------------------+------------+https://stackoverflow.com/questions/43847402
复制相似问题