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 | 
+----------+------------------+------------+