To, co naprawdę się tutaj dzieje, to związek wielu do wielu. Pomyśl o tym:każdy tag może znajdować się na kilku postach, a każdy post może mieć kilka tagów.
Właściwą architekturą relacyjną do tego celu jest dodanie kolejnej tabeli pośrodku w następujący sposób:
CREATE TABLE post_tags (
id INTEGER REFERENCES posts,
tag VARCHAR REFERENCES tags
);
Następnie upuść tags
kolumna w tabeli postów.
To rozwiązuje wszystkie twoje problemy, ponieważ możesz uzyskać zestaw tagów na poście lub zestaw postów z danym tagiem, łącząc się z post_tags w różnych kierunkach. Możesz również uzyskać listę tagów, które zaczynają się od czegoś, używając zwykłego zapytania LIKE, co będzie trudniejsze, jeśli masz kilka ciągów połączonych w jednym polu.