Myślę, że powinieneś przeczytać o normalizacji baz danych i zdecyduj sam. Krótko mówiąc, z Twoją propozycją jest wiele problemów, ale możesz zdecydować, że możesz z nimi żyć.
Najbardziej oczywiste to:
- Co się stanie, jeśli do wiersza(1) zostanie dodany dodatkowy tag? Czy musisz najpierw przeanalizować, sprawdzić, czy jest już obecny, a następnie zaktualizować wiersz do
tags.append(newTag)
. - Co gorsza, nadal usuwasz tag? Wyszukaj tagi, jest obecny, ponownie utwórz tagi.
- Co zrobić, jeśli tag ma zmienić nazwę – na przykład jakiś proces moderacji?
- Co gorsza, co z różnymi osobami określającymi nazwę tagu w inny sposób - byłoby to trudne do racjonalizacji.
- Co zrobić, jeśli chcesz wysyłać zapytania do danych na podstawie tagów? Twoje zapytanie staje się znacznie bardziej złożone, niż byłoby to konieczne.
- Prezentacja:Klient musi przeanalizować tag, aby go użyć. A co z polem separatora? Zmień to, a wszyscy klienci muszą się zmienić.
Krótko mówiąc, wszystkie te operacje stają się coraz trudniejsze i bardziej uciążliwe. Normalizacja ma na celu przezwyciężenie takich problemów. Prawdopodobnie jedynym powodem, dla którego robisz to, co mówisz, IMO, jest to, że przechwytujesz dane jako jednorazowe i mają one jedynie charakter informacyjny - to znaczy, że mają sens dla użytkownika, ale nie dla systemu per-se. To tak, jakby powiedzieć, że najlepiej tego unikać (ponownie, IMO).