Domanda

Sto lavorando su un'app Rails utilizzando CanCan per RBAC e ho solo 3 ruoli e Forse Ne aggiungerò 1 o 2 in più da qualche parte lungo la traccia.

In passato ho sempre avuto ruoli come entità a sé stante, uniti agli utenti tramite una tabella di collegamento m2m.Con così pochi ruoli statici sembra eccessivo.Quindi sto pensando di aggiungere semplicemente colonne booleane alla tabella Utenti per ciascun ruolo.Potrei anche usare una maschera di bit (come fa l'esempio CanCan) ma non sono molto interessato a memorizzare più valori in una singola colonna.

Quindi la mia domanda è: qual è la cosa migliore da fare in questa situazione:maschere di bit, più colonne booleane o una relazione m2m adeguatamente normalizzata?

È stato utile?

Soluzione

Operare secondo il principio YAGNI guiderebbe la mia decisione di utilizzare colonne di bit separate per ciascun ruolo.Anche se aggiungi un paio di colonne in più nel tempo, è comunque più facile da gestire rispetto a una tabella di collegamento m2m.Sono completamente d'accordo nel non utilizzare le maschere di bit poiché oscurano il significato dei dati.

Sto affrontando questo problema solo dal lato SQL poiché non ho esperienza con Rails, CanCan o RBAC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top