Až dosud jsem chtěl tyto seznamy oddělené čárkami uchovávat ve své databázi SQL – dobře si uvědomoval všechna varování!
Stále jsem si myslel, že mají výhody oproti vyhledávacím tabulkám (které poskytují cestu k normalizované databázi). Po několika dnech odmítání jsem uviděl světlo :
- Použití vyhledávacích tabulek NEZPŮSOBÍ více kódu než ty ošklivé operace s řetězci při použití hodnot oddělených čárkami v jednom poli.
- Vyhledávací tabulka umožňuje nativní formáty čísel, a NENÍ tedy větší než pole csv. Je však MENŠÍ.
- Zapojené operace s řetězci jsou v kódu vyšší úrovně jazyka (SQL a PHP) tenké, ale drahé ve srovnání s použitím polí celých čísel.
- Databáze nejsou určeny k tomu, aby byly čitelné pro člověka, a je většinou hloupé snažit se držet struktur kvůli jejich čitelnosti/přímé úpravě, jako jsem to udělal já.
Stručně řečeno, existuje důvod, proč v MySQL není žádná nativní funkce SPLIT().