Những gì bạn thực sự đang diễn ra ở đây là một mối quan hệ nhiều-nhiều. Hãy nghĩ về điều đó:mỗi thẻ có thể có trên một số bài đăng và mỗi bài đăng có thể có nhiều thẻ.
Kiến trúc quan hệ chính xác cho việc này là thêm một bảng khác ở giữa như sau:
CREATE TABLE post_tags (
id INTEGER REFERENCES posts,
tag VARCHAR REFERENCES tags
);
Sau đó thả các thẻ tags
trên bảng bài đăng của bạn.
Điều này giải quyết tất cả các vấn đề của bạn, bởi vì bạn có thể lấy tập hợp thẻ trên một bài đăng hoặc tập hợp các bài đăng với một thẻ nhất định bằng cách kết hợp với post_tags theo các hướng khác nhau. Bạn cũng có thể lấy danh sách các thẻ bắt đầu bằng một thứ gì đó bằng cách sử dụng truy vấn LIKE thông thường, điều này sẽ khó khăn hơn nếu bạn có nhiều chuỗi được nối trong một trường.