Do tej pory chciałem zachować te listy oddzielone przecinkami w mojej bazie danych SQL - dobrze świadomy wszystkich ostrzeżeń!
Ciągle myślałem, że mają przewagę nad tabelami przeglądowymi (które zapewniają drogę do znormalizowanej bazy danych). Po kilku dniach odmowy Ujrzałem światło :
- Korzystanie z tabel przeglądowych NIE powoduje więcej kodu niż te brzydkie operacje na łańcuchach, gdy używasz wartości oddzielonych przecinkami w jednym polu.
- Tabela przeglądowa pozwala na natywne formaty liczb i dlatego NIE jest większa niż te pola csv. Jest jednak MNIEJSZY.
- Zaangażowane operacje na ciągach znaków są niewielkie w kodzie języka wysokiego poziomu (SQL i PHP), ale są drogie w porównaniu z używaniem tablic liczb całkowitych.
- Bazy danych nie mają być czytelne dla ludzi i przeważnie głupie jest próbować trzymać się struktur ze względu na ich czytelność/możliwość bezpośredniej edycji, tak jak ja.
Krótko mówiąc, istnieje powód, dla którego w MySQL nie ma natywnej funkcji SPLIT().