Tôi nghĩ bạn nên đọc về Chuẩn hóa cơ sở dữ liệu và tự quyết định. Nói tóm lại, có một số vấn đề với đề xuất của bạn, nhưng bạn có thể quyết định rằng mình có thể sống chung với chúng.
Rõ ràng nhất là:
- Điều gì sẽ xảy ra nếu một thẻ bổ sung được thêm vào hàng (1)? Trước tiên, bạn có phải phân tích cú pháp không, hãy kiểm tra xem nó đã có sẵn rồi chưa rồi cập nhật hàng thành
tags.append(newTag)
. - Tệ hơn nữa là vẫn xóa thẻ? Thẻ tìm kiếm, hiện diện, tạo lại thẻ.
- Điều gì sẽ xảy ra nếu một thẻ thay đổi tên - có lẽ là một số quy trình kiểm duyệt?
- Tệ hơn nữa, còn những người khác nhau chỉ định tên thẻ theo cách khác thì sao - thật khó để hợp lý hóa.
- Điều gì xảy ra nếu bạn muốn truy vấn dữ liệu dựa trên thẻ? Truy vấn của bạn trở nên phức tạp hơn nhiều so với mức cần thiết.
- Bản trình bày:Khách hàng phải phân tích cú pháp thẻ để sử dụng nó. Còn trường phân cách thì sao? Thay đổi điều đó và tất cả khách hàng phải thay đổi.
Tóm lại, tất cả các thao tác này trở nên khó hơn và rườm rà hơn. Chuẩn hóa được thiết kế để khắc phục những vấn đề như vậy. Có lẽ lý do duy nhất để làm những gì bạn nói, IMO, là bạn đang nắm bắt dữ liệu một lần duy nhất và nó chỉ mang tính thông tin - tức là có ý nghĩa với người dùng nhưng không có ý nghĩa với hệ thống. Điều này giống như nói rằng nó có lẽ tốt nhất nên tránh (một lần nữa, IMO).