首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php:Mysql:问题库数据库设计

php:Mysql:问题库数据库设计
EN

Stack Overflow用户
提问于 2011-05-15 10:09:40
回答 3查看 2.7K关注 0票数 0

我在为QUestion银行的php项目设计数据库时遇到了一个问题

用户可以创建一个问题并给它分配无限数量的答案。

问题是,我目前将这些问题存储如下:

ID,问题,回答

1,“遮罩颜色?”,"green=hgreen,yellow=yellow“

我存储所有的答案,作为一个独立和一个=,将实际值与应该显示给用户的值分开!

所以上面的例子是

代码语言:javascript
复制
<span>Hood color</span>
<input type=checkbox value=hyellow>yellow
<input type=checkbox value=hgreen>green

有更好的主意吗?

EN

回答 3

Stack Overflow用户

发布于 2011-05-15 10:12:59

是的,为答案创建一个不同的表:

表问题: QuestionId问题表答案: AnswerId QuestionId答案(真实答案)标题(标题将显示给用户)

编辑:

选择问题和答案。没有答案的问题不返回任何内容。

代码语言:javascript
复制
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.*在这些行中为空。

其他解决方案,首先查询一个问题列表,然后得到每个问题的答案:

代码语言:javascript
复制
select
  a.AnswerId,
  a.Answer,
  a.Caption
from
  Answers a
where 
  a.QuestionId = <QuestionId you retrieved before>
票数 1
EN

Stack Overflow用户

发布于 2011-05-15 10:15:03

PHP有一些相当好的JSON支持,您可以将其保存为JSON字符串({"green": "hgreen", "yellow": "hyellow"})

票数 0
EN

Stack Overflow用户

发布于 2011-05-15 10:28:35

表用户,一个表回答(有两个或更多的列,如"right_answer“和"wrong_answer”.)也许您可以使用mysql工作台来创建数据库结构=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6007740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档