2010-02-15 41 views
19

Lược đồ cơ sở dữ liệu tốt nhất cho các cuộc thăm dò là gì? Mối quan hệ một - nhiều có tốt cho điều này không? Tôi đang nghĩ về việc có hai bảng:Lược đồ Cơ sở Dữ liệu Thăm dò ý kiến ​​

poll_questions 
    int id 
    varchar body 
    datetime created_at 
    datetime updated_at 

poll_answers 
    int id 
    varchar body 
    int votes default 0 
    int question_id (foreign key to poll_questions.id) 
    datetime created_at 
    datetime updated_at 

Sau đó, cũng sẽ là bàn thứ ba để theo dõi người bình chọn cho câu trả lời vì vậy người dùng có thể bỏ phiếu một lần duy nhất:

poll_voting_history 
    int id 
    int question_id (foreign key to poll_questions.id) 
    int answer_id (foreign key to poll_answers.id) 
    int user_id (foreign key to the id in the users table) 
    datetime created_at 
    datetime updated_at 

suy nghĩ của bạn là gì ? Tôi đang nghĩ về nó phải không?

+0

là người dùng của bạn cho giản đồ cụ thể này gửi câu trả lời tùy chỉnh của riêng họ? hoặc từ một bộ câu trả lời được tạo trước? – cwiggo

+0

Bạn có thể thêm cột 'đơn hàng' vào poll_answers nếu bạn muốn câu trả lời được đặt hàng – WoLfPwNeR

Trả lời

5

Lưu ý: cột "phiếu bầu" của bảng poll_answers là không cần thiết. Các phiếu bầu có thể được xác định bằng cách truy vấn bảng Poll_voting_history.

2

Tôi nghĩ rằng question_id trong poll_voting_history cũng không cần thiết, vì mỗi điểm trả lời cho một câu hỏi, do đó, dựa trên answer_id bạn có thể nhận được câu hỏi_id rằng nó thuộc về.

Các vấn đề liên quan