Javascript 使用PHP、MySql和Bootstrap的问答应用程序

Javascript 使用PHP、MySql和Bootstrap的问答应用程序,javascript,php,mysql,ajax,json,Javascript,Php,Mysql,Ajax,Json,我计划为我的一个朋友做一个测验网络应用程序。 到目前为止,我已经决定了以下事项。我需要你的建议,这和什么可以改变,以便在可以帮助使应用程序更加优化 数据库-MySql 后端-PHP 前端-引导、HTML、JSS、CSS 因此,应用程序就像可以有与一个主题相关的测试。 一个测试可以包含10个问题。全部都是选择题 我计划在一个页面上显示10个问题和一个提交按钮,一旦所有问题都得到回答,该按钮将提交测验 在下一页,它将显示用户正确的选项以及他突出显示的选项。还可以添加选项以向其emailid发送正确答

我计划为我的一个朋友做一个测验网络应用程序。 到目前为止,我已经决定了以下事项。我需要你的建议,这和什么可以改变,以便在可以帮助使应用程序更加优化

数据库-MySql

后端-PHP

前端-引导、HTML、JSS、CSS

因此,应用程序就像可以有与一个主题相关的测试。 一个测试可以包含10个问题。全部都是选择题

我计划在一个页面上显示10个问题和一个提交按钮,一旦所有问题都得到回答,该按钮将提交测验

在下一页,它将显示用户正确的选项以及他突出显示的选项。还可以添加选项以向其emailid发送正确答案

在数据库端 我想到了下表

问题包含问题id、文本、选项1、选项2、选项3、选项4、更正选项等列

类别-类别列表。列-类别id、类别名称

问题\类别-问题和类别之间的关系。列-问题id、类别id

我对正确的_选项应该如何/在哪里存储感到困惑。应该是列名(选项1等)/或完整答案文本。还有别的想法吗

另外,考虑使用REST
api访问数据库记录。我找到了用于在php中创建restapi的Slim框架。我选择这种方法,因为将来如果我想更改数据库或前端,它会更容易

或者你认为不使用REST可以吗

在前端,我计划对相应的API进行AJAX调用,以访问问题等,并以JSON格式返回响应

我不喜欢的是从JSON创建HTML结构,以正确的格式显示数据。这不是javascript文件中非常混乱的部分吗

有什么办法可以避免吗?或者以其他方式达到同样的目的


请给出关于上述内容的建议,哪些内容可以更改以提高效率。

我会更改您表格的模式

第一个表是带有列的
category

cat_id  |  cat_name
question_id  |  cat_id  |  question
option_id  |  question_id  |  option  |  correct
第二个表是带列的
问题

cat_id  |  cat_name
question_id  |  cat_id  |  question
option_id  |  question_id  |  option  |  correct
第三个表是带有列的
options

cat_id  |  cat_name
question_id  |  cat_id  |  question
option_id  |  question_id  |  option  |  correct
问题
表格与
类别
表格的关系是
类别id
。然后问题表与选项表的关系是
question\u id

您将在选项表中存储多个选项。如果突然间,你想对一个问题有更多的选择怎么办?那么这个模式就适合你了。然后对于
correct
列,
1
将触发正确答案,而
0
将触发错误答案

例如:

类别表:

cat_id  |  cat_name
  1     |    fruits
问题表:

question_id  |  cat_id  |  question
    1        |     1    |  What is the color of apple?
    2        |     1    |  What fruit is good for potassium?
选项表:

option_id  |  question_id  |  option  |  correct
   1       |      1        |   red    |     1
   2       |      1        |   blue   |     0
   3       |      1        |  yellow  |     0
   4       |      1        |  magenta |     0
   5       |      2        |  apple   |     0
   6       |      2        |  banana  |     1
   7       |      2        |  mango   |     0
   8       |      2        |  melon   |     0
因此,当您获取问题时,可以使用
内部联接
获取选项/答案,或使用类别对其进行过滤

SELECT a.question, b.cat_name, c.question_id, c.option, c.correct
  FROM question a
  INNER JOIN category b ON a.cat_id = b.cat_id
  INNER JOIN options c FROM a.question_id = c.question_id
  WHERE b.cat_id = ?

我建议使用php、mysql、ExtJS4、json在一天内完成这一切。不费吹灰之力,正确选项的概念:始终将正确答案存储在选项1中,并在显示时将答案洗牌。你可以这样保存你自己的正确选项栏。我因为很多事情否决了你的问题,值得一提的是,我发现你的问题非常广泛,因为你试图一次涵盖多个事情。此外,这个问题似乎在寻求解决问题的最佳方法(主要是基于意见/推荐工具/软件/库)。@epodax是的,我同意它有点宽泛。看,我在php方面没有太多经验。所以我只是想问,经验丰富的人还能告诉我其他有效的方法吗。因此,与其浪费我的时间来实现这个解决方案,不如让我得到更合适的解决方案来实现同样的效果。谢谢你的模式。如果您也能就RESTAPI方法发表意见,我将不胜感激,这是一种好方法还是我应该直接使用php访问数据库?