PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Có bao giờ là một ý tưởng hay khi lưu trữ một mảng dưới dạng giá trị trường hoặc lưu trữ các giá trị mảng dưới dạng bản ghi?

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à:

  1. Đ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) .
  2. 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ẻ.
  3. Đ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?
  4. 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.
  5. Đ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.
  6. 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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đón ngày đầu tiên của tháng trong PostgreSQL

  2. Nhóm các bản ghi có liên quan, nhưng chỉ chọn các trường nhất định từ bản ghi đầu tiên

  3. Cách tốt nhất để lưu trữ thời gian chạm cuối cùng ở Cassandra

  4. Vai trò không tồn tại và không thể tạo cơ sở dữ liệu khi sử dụng PostgreSQL

  5. Go sql - phạm vi câu lệnh được chuẩn bị sẵn