Penso che dovresti leggere sulla normalizzazione del database e decidi tu stesso. In breve, però, ci sono una serie di problemi con la tua proposta, ma potresti decidere di conviverci.
I più ovvi sono:
- Cosa succede se viene aggiunto un tag aggiuntivo alla riga(1)? Devi prima analizzare, controllare se è già presente, quindi aggiornare la riga in modo che sia
tags.append(newTag)
. - Peggio ancora eliminare un tag? Cerca tag, è presente, ricrea i tag.
- E se un tag dovesse cambiare nome, magari un processo di moderazione?
- Ancora peggio, che dire di persone diverse che specificano un nome di tag in modo diverso:sarebbe difficile da razionalizzare.
- Cosa succede se si desidera eseguire query sui dati in base ai tag? La tua query diventa molto più complessa di quanto dovrebbe essere.
- Presentazione:il client deve analizzare il tag per poterlo utilizzare. E il campo separatore? Cambialo e tutti i clienti devono cambiare.
In breve, tutte queste operazioni diventano più difficili e macchinose. La normalizzazione è progettata per superare tali problemi. Probabilmente l'unico motivo per fare quello che dici, IMO, è che stai acquisendo i dati come una tantum ed è solo informativo, cioè ha senso per un utente ma non per un sistema in sé. Questo è un po' come dire che probabilmente è meglio evitarlo (di nuovo, IMO).