Ho una tabella società e utente come sotto ...
Tabella società:
CompanyID CompanyName etc...
Tabella utente:
UserID Email UserType CompanyID etc...
Per prima cosa devo dirti che, attualmente ho due tipi di utente, amministratori (che possono fare qualsiasi cosa) e utenti (con alcuni privilegi di base)
Ora ho l'obbligo di presentare, Filiale delle aziende. Supponiamo che l'Azienda A abbia il Ramo A, il Ramo B, il Ramo C ecc. E che questi rami possano essere collocati in tutta la geografia o all'interno della stessa regione.
Ora ho due opzioni ... 1. Creare un ramo di una tabella. 2. Aggiungi una colonna alla tabella Company denominata ParentCompanyID
Sono più incline verso 2, in quanto è una soluzione facile. Ma non sono sicuro nel prossimo futuro se dovrò affrontare eventuali problemi di ridimensionamento durante il recupero dei report in base a questa gerarchia. Posso solo farlo presentando una nuova colonna e un utente SuperAdmin.
I SuperAdmins non avranno alcun ruolo, ma solo per visualizzare i report di tutte le filiali e i report specifici delle filiali già esistenti.
Ma se vado con 1, non sono sicuro di come procedere, perché la tabella utente ha CompanyID, che ho bisogno di cambiare in BranchID. Ma poi di nuovo, l'Utente può essere di Società (colui che può visualizzare i rapporti di tutti i rami).
Lo so, non c'è il modo migliore per l'ingegneria del software, ma cosa ne pensi di quale sia il modo più accessibile per il caso specifico considerando il ridimensionamento e le prestazioni in termini di report SQL.