Panoramica
Un'applicazione Web centrale per supportare altre applicazioni Web (A) per l'utente e il relativo ruolo / gestione dei permessi. Le applicazioni (A) chiamano l'applicazione centrale tramite API per ottenere i ruoli / permessi dell'utente.
1) L'applicazione (A) può avere risorse.
2) Le risorse possono avere permessi.
3) L'utente può avere accesso a risorse / permessi.
L'amministratore dovrebbe poter creare risorse per un'applicazione, autorizzazioni per quella risorsa, assegnare l'accesso di una risorsa / autorizzazione a un utente e la risposta dovrebbe essere qualcosa di simile.
User
- Resource
- Permissions
- Resource
- Permissions
Scenario
L'amministrazione per un'applicazione (A) vuole creare risorse dire R1, R2 ma non necessariamente qualsiasi autorizzazione sotto di loro perché è sufficiente per lui se ottiene la risposta in questo modo.
User
- R1
- R2
Approccio 1
Crea queste tabelle 1) Applicazione
2) Risorsa (FK come appID)
3) Permessi (FK come ID risorsa)
4) User_Permissions (FK come permissionID)
In questo caso poiché non ci sono permessi per una risorsa così la tabella User_Permission sarà vuota. Ma poi l'amministratore vuole dare accesso alle risorse, in modo che il sistema possa creare un'autorizzazione predefinita O l'amministratore deve creare un'autorizzazione predefinita ogni volta che crea una risorsa. Quindi inseriamo le autorizzazioni predefinite nella tabella User_Permissions e possiamo finalmente trovare le risorse corrispondenti e restituire la risposta seguente.
Utente - R1 - Permesso predefinito - R2 - Autorizzazione predefinita
Approccio 2
Crea queste tabelle 1) Applicazione
2) Risorsa (FK come appID)
3) Permessi (FK come ID risorsa)
4) User_Resources (FK come resourceID)
5) User_Permissions (FK come userResourceID)
In questo caso abbiamo la tabella aggiuntiva User_Resources che specifica le risorse a cui l'utente ha accesso e quindi le autorizzazioni su quella risorsa.
Hai bisogno di suggerire quale approccio preferire.