Da quello che sono riuscito ad intuire ti posso dire che una struttura orizzontale non è mai una scelta azzeccata dal momento in cui potresti avere un numero alto di id_utenti.
Fossi in te farei cosi :
Tabella GRUPPI
CAMPI : id_GRUPPI, nome_GRUPPI
Tabella UTENTI
CAMPI : id_utente, nome_utente, id_GRUPPI
Tabella AGENTI
CAMPI : id_agente, nome_agente, id_GRUPPI
Stessa cosa per FORNITORI
Ma se le tre tabelle hanno la stessa struttura potresti fare cosi
Tabella UTENTI
CAMPI : id_utente, id_tipo_utente,nome_utente, id_GRUPPI
con :
tipo_utente = 1 -> Utenti
tipo_utente = 2 -> Agenti
tipo_utente = 3 -> Fornitori
cosi se vuoi aggiungere una nuova categoria (ovviamente solo se hanno bisogno delle stesse informazioni) lo fai senza fare modifiche alla struttura del DB.
Di più puoi passare facilmente un utente da "utenti" a "agenti" o a "fornitore" (solo se è previsto), se vuoi fare delle query hai una sola query da scrivere, etc...
Tabella TIPO_UTENTI
CAMPI : id_tipo_utente, nome_tipo


Rispondi quotando