Crea una tabella di interessi, quindi un'altra tabella (UserInterest) contenente le chiavi esterne di Utente e Interesse
Quello che stai descrivendo è una relazione molti-a-molti tra Utente e Interesse. Se segui il processo di normalizzazione del database per il tuo modello di dati, vedrai che il possesso di un elenco di valori separati da virgola non riesce su due punti:
- Ogni colonna deve contenere solo un elemento di dati, ma un elenco separato da virgola è composto da più elementi.
- Ogni interesse è un elemento di dati ripetuto nell'utente. Se avevi bisogno di cambiare qualcosa (magari correggendo un errore di ortografia, o cambiando il nome in qualcosa di più descrittivo), allora se si detengono gli Interessi come stringhe nella tabella Utente, è necessario eseguire una massiccia istruzione di aggiornamento sull'utente .
La combinazione di tenere tutto in User e contenere liste separate da virgole fa il secondo problema; se avessi bisogno di cambiare il nome di un interesse, non saresti in grado di eseguire un aggiornamento molto semplice - dovresti fare una sorta di manipolazione delle stringhe per trovare ogni istanza di un interesse e modificarlo.
Con la struttura che ho suggerito, se dovessi cambiare il nome di un interesse, aggiornerai una riga nella tabella degli interessi.
Inoltre, in questo modo significa che non avrai mai bisogno di manipolare le stringhe per far combaciare gli interessi tra due persone. Se tu avessi gli interessi della Persona A come "pesca, cottura, artigianato di carta" e Persona B come "slittino, mestiere di carta, pesca" dovresti fare qualche spiacevole scambio di dati per capire che condividevano i due terzi dei loro interessi . Invece, puoi semplicemente fare una serie di join - e con le funzioni di aggregazione in SQL potresti anche fare cose come capire il numero di interessi corrispondenti, la percentuale di interessi abbinati, ecc.
Infine, ti ringrazierai più tardi se hai bisogno di creare report, business intelligence o altri sistemi a valle su questi dati. O rimarrai nei buoni libri di chi è chi ha bisogno di costruire quelle cose.