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

Mô hình Cơ sở dữ liệu cho Khảo sát Trực tuyến. Phần 1

Tôi cần tạo thiết kế cho cơ sở dữ liệu mới sẽ là lớp dữ liệu cho một ứng dụng; ứng dụng sẽ là một cuộc khảo sát trực tuyến hoặc thăm dò ý kiến ​​như Survey Monkey. Thách thức của tôi là chức năng mà tôi yêu cầu không được hỗ trợ bởi các trang web khảo sát hiện có, vì vậy tôi cần phải xây dựng chức năng của riêng mình. Những gì tôi cần là một cuộc khảo sát có điều kiện (nếu câu trả lời cho câu hỏi 4 là “có”, thì chúng tôi đặt câu hỏi 5 và bỏ qua câu hỏi 6; nhưng nếu câu trả lời cho câu hỏi 4 là “không”, thì chúng tôi bỏ qua câu hỏi 5 và đặt câu hỏi 6 ).

Tôi sẽ viết một loạt bài về thiết kế này và mở rộng thiết kế mỗi lần, vì vậy bài viết này chủ yếu là về thiết lập bối cảnh cho cơ sở dữ liệu khảo sát cơ bản. Trong các bài viết trong tương lai, tôi sẽ làm việc trên các tính năng nâng cao hơn liên quan đến thứ tự câu hỏi có điều kiện trong khảo sát và việc quản lý khảo sát.

Miền

Miền cho một cuộc khảo sát trực tuyến dựa trên một bảng câu hỏi hoặc cuộc thăm dò bao gồm một loạt các câu hỏi. Người trả lời sẽ thực hiện khảo sát và chúng tôi cần lưu trữ câu trả lời của họ.

Bây giờ, chúng ta sẽ bắt đầu với câu hỏi mở bao gồm một câu hỏi và một câu trả lời.

Trong các phiên bản tương lai của mô hình, chúng tôi sẽ muốn xác định thứ tự của các câu hỏi trong cuộc khảo sát, liệu các câu hỏi có điều kiện hay không và các loại câu hỏi khác nhau (chẳng hạn như câu hỏi trắc nghiệm).

Chức năng

Như đã đề cập, chúng tôi sẽ hỏi người trả lời để trả lời cuộc khảo sát (nó sẽ không được mở cho tất cả mọi người) và chúng tôi cần lưu trữ câu trả lời của họ. Ngoài ra, cùng một người tham gia có thể quay lại và cập nhật câu trả lời của họ. Lưu trữ câu trả lời có thể hơi khó khăn vì chúng tôi sẽ cần các bảng được liên kết với các câu hỏi ban đầu, nhưng có câu trả lời cho từng người trả lời hoàn thành khảo sát.

Trong các phiên bản tương lai của mô hình, chúng tôi sẽ thêm quản trị viên của các cuộc khảo sát trực tuyến.

Cuối cùng, sẽ cần phải có các báo cáo và phân tích:Các phản hồi là gì? Có bao nhiêu câu trả lời đã nhận được từ các nhóm phụ khác nhau? Những câu hỏi nào không được trả lời thường xuyên nhất (để xác định những câu hỏi bị nói xấu)?

Thực thể và Mối quan hệ

Hãy xem:chúng tôi có một cuộc khảo sát (hoặc bảng câu hỏi) bao gồm một loạt câu hỏi. Hiện tại, chúng tôi chỉ bắt đầu với các câu hỏi mở nên không cần các câu trả lời có thể có liên quan đến câu hỏi, cũng như cần thiết cho các câu hỏi trắc nghiệm. Thứ tự các câu hỏi trong khảo sát sẽ cố định (được xác định khi khảo sát được tạo), nhưng trong các phiên bản tương lai của mô hình, chúng tôi muốn thêm tùy chọn cho đường dẫn có điều kiện thông qua khảo sát.

Rõ ràng, chúng tôi sẽ cần những người trả lời và phản hồi của họ. Như đã đề cập, chúng tôi sẽ thêm quản trị người dùng trong các phiên bản tương lai của mô hình.

Thiết kế trang trọng

Bây giờ chúng ta đã biết các thực thể và mối quan hệ, chúng ta đã sẵn sàng xây dựng Sơ đồ mối quan hệ thực thể (ERD) của mình. Để thực hiện việc này, chúng tôi sẽ sử dụng Vertabelo , một công cụ trực tuyến để lập mô hình cơ sở dữ liệu. Nếu bạn chưa có tài khoản Vertabelo của mình, bạn có thể đăng ký tại đây để nhận gói dùng thử miễn phí.

Đối với khảo sát trực tuyến của chúng tôi, chúng tôi sẽ bắt đầu với khảo sát, các câu hỏi liên quan và thứ tự hiển thị các câu hỏi. Chúng tôi thêm người trả lời và sau đó liên kết các cuộc khảo sát mà người trả lời đã cung cấp câu trả lời và câu trả lời của họ cho một cuộc khảo sát.




Hiện tại, hãy sử dụng điều đó làm cơ sở và tăng thêm độ phức tạp trong các phiên bản tương lai của mô hình.

Kết luận

Với thiết kế cơ bản của chúng tôi được xác định, bây giờ chúng tôi có thể bắt đầu suy nghĩ về các cải tiến. Trong các bài viết sau, tôi sẽ làm việc trên các tính năng nâng cao hơn như:

  • Các loại câu hỏi khác nhau, chẳng hạn như câu hỏi trắc nghiệm
  • Thứ tự có điều kiện của các câu hỏi trong một cuộc khảo sát
  • Quản lý các cuộc khảo sát.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lập kế hoạch dung lượng đĩa cho cơ sở dữ liệu

  2. CẬP NHẬT SQL

  3. Các vấn đề về cấu hình nhật ký giao dịch

  4. Kết nối với Cơ sở dữ liệu bằng PHP

  5. Các loại SQL JOIN