Utente, utente Ruolo e informazioni utente, problema di progettazione della base dati

0

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?

    
posta LikeIfYouCaredAboutMyName 09.06.2016 - 18:12
fonte

1 risposta

0

Che ne pensi di una tabella diversa per diversi tipi di utente. E una tabella per le informazioni comuni dell'utente.
Quindi la tabella specifica ha un riferimento alla riga di informazioni di base

RegularUser { ID, SpecificDataForRegularUser, BasicInfoID}
Manager { ID, SpecificDataForManager, BasicInfoID}

UserBasicInfo { ID, Name, Phone, ...}

Quindi la struttura dei dati per diversi tipi di utenti rimane separata e chiara

    
risposta data 09.06.2016 - 18:28
fonte

Leggi altre domande sui tag