0

Ich baue eine Software, wo ich Benutzer habe, die für die Verwaltung von Verträgen verantwortlich sind. Jeder Benutzer kann nur die Verträge sehen, für die er verantwortlich ist.Wie kann ich Informationen zwischen Benutzern austauschen?

Jetzt möchte ich eine Share-Funktionalität implementieren, wo ein Benutzer entscheiden kann, einige der Vertragsdetails mit einem anderen Benutzer zu teilen, so dass der andere Benutzer jetzt in seiner Vertragsliste einen gemeinsamen Vertrag sehen kann.

Aber zuerst möchte ich sicherstellen, dass ich dies in Bezug auf die Datenbank korrekt implementiere.

Also im Moment, ich habe folgendes in Bezug auf die Beziehung zwischen den Benutzern und Verträge:

user (1) verwaltet contracts (1 .. *)

Und der Anteil Funktionalität zu implementieren , habe ich folgendes:

user (0 .. *) kann contracts (0 .. *)

, die in einer neuen Tabelle sehen führte, dass ich SharedContrac genannt ts. In dieser Tabelle wird die Benutzer-ID des Benutzers gespeichert, der nun Zugriff auf den Vertrag und die Vertrags-ID des freigegebenen Vertrags hat.

Was nun passieren wird ist, dass, wann immer Benutzer A beschließt, seine Vertragsdetails mit Benutzer B zu teilen, die SharedContracts-Tabelle verwendet wird, um diese Daten zu speichern.

Und wenn sich Benutzer B das nächste Mal anmeldet, prüft das System, ob er einen gemeinsamen Vertrag hat, indem er die Tabelle SharedContracts abfragt. Das System wählt alle Vertrags-IDs aus, die seiner Benutzer-ID zugeordnet sind.

Ich möchte wissen, ob dies der richtige Weg ist, um eine solche Funktionalität zu implementieren? Gibt es einen anderen Weg? Kann ich auf einige Probleme stoßen, wenn es so bleibt?

Antwort

0

Ich denke, Ihre vorgeschlagene Architektur wäre in Ordnung. Die einzige Änderung, die ich vorschlagen würde, ist, die IDs sowohl des Benutzers, der den Vertrag geteilt hat, als auch des Empfängers der Freigabe in die SharedContracts-Tabelle aufzunehmen. Dies ermöglicht dem Benutzer, der einen Vertrag geteilt hat, diese Freigabe zu einem späteren Zeitpunkt zu widerrufen.

SharedContracts

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