我在为QUestion银行的php项目设计数据库时遇到了一个问题
用户可以创建一个问题并给它分配无限数量的答案。
问题是,我目前将这些问题存储如下:
ID,问题,回答
1,“遮罩颜色?”,"green=hgreen,yellow=yellow“
我存储所有的答案,作为一个独立和一个=,将实际值与应该显示给用户的值分开!
所以上面的例子是
<span>Hood color</span>
<input type=checkbox value=hyellow>yellow
<input type=checkbox value=hgreen>green有更好的主意吗?
发布于 2011-05-15 10:12:59
是的,为答案创建一个不同的表:
表问题: QuestionId问题表答案: AnswerId QuestionId答案(真实答案)标题(标题将显示给用户)
编辑:
选择问题和答案。没有答案的问题不返回任何内容。
select
q.QuestionId,
q.Question,
a.AnswerId,
a.Answer,
a.Caption
from
Questions q
inner join Answers a on a.QuestionId = q.QuestionId将inner join更改为left join,以获得一个没有答案的问题行。a.*在这些行中为空。
其他解决方案,首先查询一个问题列表,然后得到每个问题的答案:
select
a.AnswerId,
a.Answer,
a.Caption
from
Answers a
where
a.QuestionId = <QuestionId you retrieved before>发布于 2011-05-15 10:15:03
PHP有一些相当好的JSON支持,您可以将其保存为JSON字符串({"green": "hgreen", "yellow": "hyellow"})
发布于 2011-05-15 10:28:35
表用户,一个表回答(有两个或更多的列,如"right_answer“和"wrong_answer”.)也许您可以使用mysql工作台来创建数据库结构=)
https://stackoverflow.com/questions/6007740
复制相似问题