我正在为我的活动的访客创建调查。 但是,自从我创建数据库以来已经有一段时间了。所以我需要一些帮助。
我找到了一些解决方案,但它们是广泛的,这是我不需要的。
访客需要保持匿名,但他们可以留下电子邮件(单独的表格电子邮件与任何atm无关)。 他们有大约20个问题,一些是开放的,一些是一个选项(无线电),一些是多个选项(复选框)。 这些问题需要重复使用。 就是这样。 我只是不知道如何超越你在下面看到的图中的多对多。
我怎么离开这里?答案表需要与?有关系? Surveys_have_Questions,还是有问题?
正如以下链接中的答案所提到的,大多数调查都是基于经典的设计模式。我的是其中一项调查。以下链接中的更多信息: What mysql database tables and relationships would support a Q&A survey with conditional questions?
答案 0 :(得分:1)
我可能会对用户进行调查的事件进行建模,也许是一个名为“User_Answer_Session”的表格,该表格包含调查和用户的链接;然后是“User_Answers”,它们与会话和问题相关联,并包含答案的实际blob。 完全我如何建模答案将取决于一些事情(主要是我希望能够查看它们的强大程度)。例如,我是否希望能够为极快的报告索引多项选择答案?如果是这样,那么你需要为此建模。这可能包括创建一个“Question_Options”表,这是一个问题和可用选项之间的一对多...
这应该让你思考一条好路。 : - )
答案 1 :(得分:1)
<强> surverys 强>
desc VarChar
startDate timestamp
endDate timestamp
isOpen boolean
<强> survery_questions 强>
survery_id int (FK)
question Text
vote_count unsigned INT
<强> user_survery 强>
user_id
survery_id
unique key (user_id_survery_id) #to ensure no duplicate votes
那一切:)。 什么时候用户投票只是运行
insert into user_survery (user_id,survery_id) VALUES (1,1);
update survery_questions set vote_count = vote_count+1;
当你需要得到一个结果
select * from survery_questions where survery_id = X;
等