rossociliegia ha scritto:
l'ho voluto gestire in questo modo, cioè creare una tabella per ogni tipo di utente, perchè ogni utente ha cose diverse da fare.
Non ha granché senso, come ti è stato già detto da me e @migliorabile. Discorso diverso se ciascuna tipologia di utente avesse DATI differenti. In tal caso si potrebbe fare una tabella principale Utenti in cui ci sono comunque
tutti gli utenti con i dati "comuni" e poi altre tabelle es. UtentiClienti (per dire) che hanno qualcosa in più e sono in relazione uno-a-uno con la tabella principale. Questo sì è sensato e anche descritto sui libri di database design.
rossociliegia ha scritto:
voglio minimizzare le complicanze.
Con 3 tabelle di utenti distinte, dove ciascun utente sta solo in una delle 3 tabelle, le complicazioni ...
aumentano ... non diminuiscono.
EDIT: ne dico giusto una, se vuoi cambiare tipo all'utente, lo devi spostare da una tabella ad un'altra. Devi fare cioè un DELETE su una e un INSERT su un'altra. E per farlo bene, dovresti farlo in maniera "transazionale", in modo che sia "atomico", perché altrimenti se il delete ha successo ma il insert fallisce, ti sei "fumato" l'utenza.
Ma andiamo oltre: vuoi che altre tabelle possano referenziare un utente? E come fai verso 3 tabelle? Come metti le Foreign Key??