Modello di account utente con due o tre profili possibili

1

La mia applicazione avrà almeno due tipi di utenti: clienti e aziende, questi sono i tipi di profili. Poiché ogni tipo di profilo richiede informazioni aggiuntive diverse, sarà necessario creare una tabella per ogni tipo di profilo.

Come dovrei creare le mie relazioni in modo che un utente abbia zero o un profilo cliente, o zero o un profilo aziendale, ma in un modo in cui deve avere uno e solo uno dei due tipi di profili?

es. John è un client, quindi ha una riga sulla tabella Users e UsersProfiles. Non può avere una riga in CompaniesProfiles allo stesso tempo.

    
posta Juliano Nunes Silva Oliveira 21.01.2016 - 19:43
fonte

1 risposta

1

Penso che tu abbia due scelte: avere un riferimento al profilo e un indicatore nel record utente per identificare il tipo di profilo, o avere due riferimenti al profilo e far rispettare il tuo requisito usando i trigger di inserimento e aggiornamento. Nel primo caso, dovrai rinunciare all'integrità referenziale (dato che la tua chiave esterna può fare riferimento a due diverse tabelle), ma puoi risparmiare spazio utilizzando solo un campo. Nel secondo caso, si mantiene l'integrità referenziale al costo della complessità aggiunta a causa dell'uso di trigger (e possibilmente di una maggiore complessità se è necessario eseguire inserimenti di massa, poiché i trigger vengono spesso disabilitati per motivi di prestazioni quando vengono inserite grandi quantità di dati) .

    
risposta data 21.01.2016 - 20:15
fonte

Leggi altre domande sui tag