2010-02-15 14 views
19

Jaki jest najlepszy schemat bazy danych dla ankiet? Czy związek jeden-do-wielu jest na to dobry? Myślę o konieczności dwie tabele:Schemat bazy danych ankiety

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 

wtedy nie byłoby również trzeci stół do śledzenia którzy głosowali na odpowiedź, dzięki czemu użytkownicy mogą głosować tylko raz:

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 

Jakie są twoje przemyślenia ? Czy o tym myślę, prawda?

+0

są Twoimi użytkownikami tego schematu, przedstawiając własne niestandardowe odpowiedzi? lub z wstępnie wygenerowanego zestawu odpowiedzi? – cwiggo

+0

Możesz dodać kolumnę 'order' w poll_answers, jeśli chcesz, aby odpowiedzi zostały zamówione – WoLfPwNeR

Odpowiedz

5

Uwaga: kolumna "głosy" w tabeli poll_answers nie jest konieczna. Głosowanie można ustalić, wysyłając zapytanie do tabeli Poll_voting_history.

2

Myślę, że ten parametr question_id w poll_voting_history też nie jest konieczny, ponieważ każda odpowiedź wskazuje na pytanie, więc w oparciu o identyfikator odpowiedzi można uzyskać identyfikator question_id, do którego należy.

Powiązane problemy