Muszę utworzyć ankietę, w której odpowiedzi są przechowywane w bazie danych. Zastanawiam się tylko, jaki byłby najlepszy sposób zaimplementowania tego w bazie danych, a konkretnie w wymaganych tabelach. Ankieta zawiera różne rodzaje pytań. Na przykład: pola tekstowe na komentarze, pytania wielokrotnego wyboru i ewentualnie pytania, które mogą zawierać więcej niż jedną odpowiedź (tzn. Zaznacz wszystkie pasujące odpowiedzi).
Wymyśliłem dwa możliwe rozwiązania:
Utwórz olbrzymią tabelę zawierającą odpowiedzi dla każdego przesłanego ankiety. Każda kolumna odpowiadałaby odpowiedzi z ankiety. tj. SurveyID, Answer1, Answer2, Answer3
Nie sądzę, aby to był najlepszy sposób, ponieważ w tej ankiecie jest wiele pytań i nie wydaje się zbyt elastyczna, jeśli ankieta ma się zmienić.
Inną rzeczą, o której myślałem, było utworzenie tabeli pytań i tabeli odpowiedzi. Tabela pytań zawierałaby wszystkie pytania do ankiety. Tabela odpowiedzi zawierałaby indywidualne odpowiedzi z ankiety, a każdy wiersz byłby powiązany z pytaniem.
Prosty przykład:
tblSurvey : SurveyID
tblQuestion : QuestionID, SurveyID , QuestionType, Pytanie
tblAnswer : AnswerID, UserID , QuestionID , Answer
tblUser : ID użytkownika, nazwa użytkownika
Mój problem z tym polega na tym, że może istnieć mnóstwo odpowiedzi, co spowodowałoby, że tabela odpowiedzi byłaby całkiem ogromna. Nie jestem pewien, czy to takie świetne, jeśli chodzi o wydajność.
Byłbym wdzięczny za wszelkie pomysły i sugestie.