Quello che devi considerare quando progetti le tabelle non è necessariamente a cosa avranno accesso e in che modo è simile/dissimile, ma piuttosto come i livelli degli utenti stessi sono simili/dissimili.
Ad esempio, se i tipi di utente avranno gli stessi attributi (nome, email, data di nascita, ecc.), allora apparterranno a una tabella insieme a una colonna che indica il loro livello di privilegio.
Ciò facilita anche la modifica dei livelli di privilegio per un utente, per cui puoi trasformare un normale dipendente in un amministratore, ad esempio semplicemente aggiornando il record nella tabella utente.
Se i fornitori sono un tipo di oggetto diverso con attributi diversi dagli altri due, i fornitori possono appartenere alla propria tabella.
Oppure, un'altra cosa da considerare:potresti usare un users
tabella che contiene solo informazioni molto limitate sugli utenti di tutti e tre i tipi, e se i tipi hanno attributi estesi che non si relazionano bene tra loro, puoi archiviarli in altre tabelle con una chiave esterna agli utenti principali di users
tabella.