Sto creando un'applicazione che gestirà colloqui di lavoro e aiuterà i datori di lavoro a scegliere i cercatori di lavoro sulla base di un sistema di classificazione basato su alcune informazioni utente. Ho creato un database con le seguenti tabelle:
- UserTable (memorizza nome utente, password)
- Tabella dei ruoli (memorizza ID ruolo, nome e descrizione. I ruoli sono Amministratore, gestore e Utente normale)
- Tabella UserInfo (contiene informazioni come nome, indirizzo, numero di telefono, set di competenze, anni di esperienza, e-mail e altro)
- Ho anche una tabella User_Role che unisce gli utenti con il loro ruolo.
Il mio problema è il seguente: ho bisogno di avere informazioni specifiche per utenti regolari e informazioni specifiche per i gestori, ma condivideranno alcune delle stesse informazioni come nome, numero di telefono, indirizzo, e-mail.
Penso di aver bisogno di usare l'ereditarietà, ma in tal caso ho bisogno di avere una tabella separata per l'utente normale e un'altra per i manager e un'altra per gli amministratori, giusto? quindi il tavolo dei ruoli perde il suo scopo.
L'altro modo in cui sto pensando è di avere tutte le informazioni nella tabella degli utenti, ma credo che tutto sia confuso, e l'ultima idea è di avere due tabelle diverse per le diverse informazioni, una tabella per i normali informazioni utente e un'altra per informazioni sui gestori.
La domanda è: dovrei creare tabelle diverse per utenti regolari, gestori e amministratori e utilizzare l'ereditarietà ed eliminare la tabella dei ruoli.
O dovrei prendere un altro approccio?