PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Modellazione di tabelle database utente, gruppo e appartenenza

sembra abbastanza buono.

Mostri approvato_by in 2 tabelle. Se mantieni la tabella MembershipStatus, allora è lì che dovrebbe appartenere. inoltre -il nome 'approvato_by' implica lo stato di 'approvato' che può esistere o meno. potresti pensare a un altro nome...

dovresti anche avere una tabella che probabilmente identifica quali utenti sono amministratori per quali gruppi. in questo modo puoi codificare la sicurezza lato database per chi è autorizzato ad approvare e memorizzare chi ha effettivamente approvato.

inoltre, non sono un grande fan della memorizzazione della cronologia di audit nella tabella come stai mostrando. Utilizzare il database integrato nel controllo o estrarlo in un'altra tabella per registrare la cronologia del controllo.

infine, id e userid sembrano ridondanti. vai con userid. (simile su altri tavoli)