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

Lưu trữ dữ liệu có cấu trúc trong một cột cơ sở dữ liệu?

Nói một cách cá nhân, các cuộc khảo sát là một trường hợp mà tôi nghĩ rằng không có gì bình thường hóa và lưu trữ JSON khá nhiều như hiện tại là lựa chọn tốt hơn.

Nếu không có nó, bạn sẽ kết thúc với đủ loại trường hợp sử dụng kỳ lạ mà cuối cùng bạn sẽ muốn quản lý. Ngoài các loại câu hỏi trắc nghiệm gọn gàng, bạn cũng sẽ cần quản lý câu trả lời "Khác" trong đó, câu hỏi điều kiện, nhóm câu hỏi có điều kiện, danh sách tiếp tục lặp lại. Hơn nữa, các cuộc khảo sát - giống như các dạng dữ liệu khác - có thể thay đổi và mọi thứ sẽ chuyển từ kinh ngạc thành hạt nhân khi chúng thực hiện.

Điểm đáng khen của JSON là, vì các cuộc khảo sát độc lập về mặt khái niệm với nhau, bạn ít hoặc không cần tính toàn vẹn tham chiếu từ cái này sang cái khác, vì vậy bạn cũng có thể lưu trữ toàn bộ cây câu hỏi và tùy chọn dưới dạng một khối JSON, và lo lắng về việc định dạng nó trong ứng dụng của bạn.

Tương tự đối với mỗi câu trả lời đã gửi, đối với vấn đề đó:lấy đốm màu ban đầu, đánh dấu câu trả lời có liên quan là đã chọn, v.v. trong đó và lưu trữ JSON kết quả nguyên trạng , thay vì lưu trữ các tham chiếu đến các câu hỏi ban đầu cùng với bất cứ điều gì đã được trả lời. Điều này sẽ cho phép bạn dễ dàng theo dõi những gì người dùng thực sự đã trả lời, trái ngược với bất cứ điều gì mà phiên bản hiện tại của cuộc khảo sát nói và thực hiện bất kể khảo sát đã khác biệt như thế nào kể từ khi nó được trả lời ban đầu.

Nếu bạn cần khai thác câu trả lời sau này, hãy lưu ý rằng Postgres cho phép lập chỉ mục JSON bằng cách sử dụng chỉ mục GIST trên toàn bộ trường và lập chỉ mục BTREE trên biểu thức.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu hỏi về hiệu suất:VỀ CẬP NHẬT KHÓA DUPLICATE so với CẬP NHẬT (MySQL)

  2. Gặp lỗi khi thực hiện câu lệnh SELECT trong Toad for MySQL

  3. Không thể AES_DECRYPT sau AES_ENCRYPT trong mysql

  4. Truy vấn MySQL thành định dạng Code Igniter Active Directory?

  5. MySQL:Chỉ mục tối ưu cho giữa các truy vấn