Fino ad ora, volevo mantenere quegli elenchi separati da virgole nel mio db SQL, ben consapevole di tutti gli avvisi!
Continuavo a pensare che avessero vantaggi rispetto alle tabelle di ricerca (che forniscono un modo per un database normalizzato). Dopo alcuni giorni di rifiuto, ho visto la luce :
- L'uso delle tabelle di ricerca NON sta causando più codice di quelle brutte operazioni sulle stringhe quando si utilizzano valori separati da virgola in un campo.
- La tabella di ricerca consente formati numerici nativi e quindi NON è più grande di quei campi CSV. È PIÙ PICCOLO però.
- Le operazioni sulle stringhe coinvolte sono limitate nel codice del linguaggio di alto livello (SQL e PHP), ma costose rispetto all'utilizzo di array di interi.
- I database non sono pensati per essere leggibili dall'uomo ed è per lo più stupido cercare di attenersi alle strutture a causa della loro leggibilità/modificabilità diretta, come ho fatto io.
In breve, c'è un motivo per cui non esiste una funzione nativa SPLIT() in MySQL.