php - 数据库表不与任何其他表关联

标签 php mysql sql database mysqli

我在下面有一个查询,用户将输入问题中的术语,它将输出包含该术语的问题,并随之显示与问题相关的答案、选项类型、回复类型等.

下面是查询:

SELECT DISTINCT q.QuestionContent, o.OptionType, q.NoofAnswers, 
                GROUP_CONCAT(DISTINCT Answer SEPARATOR '') AS Answer, 
                r.ReplyType, q.QuestionMarks, q.SessionId   
FROM Answer an    
JOIN Question q 
ON q.QuestionId = an.QuestionId 
AND an.SessionId = q.SessionId   
JOIN Reply r 
ON q.ReplyId = r.ReplyId    
JOIN Option_Table o 
ON q.OptionId = o.OptionId 
WHERE ".implode(" AND ", array_fill(0, $numTerms, "q.QuestionContent LIKE ?"))."
GROUP BY an.SessionId, an.QuestionId

现在我意识到,通过使用 CRON,每年它都会删除以前的考试(SessionId),这意味着这些问题不会出现在用户中供用户搜索。

所以我想做的是建立一个表来存储以前的所有问题,该表如下:

Previous_Question Table:

PreviousId (auto) PreviousContent
1                 What is 2+2? 
2                 What is 4+4 and 3+3?
3                 What is square root of 144?

所以我想使用 Previous_Question 表来搜索以前的问题。所以我需要更改上面的查询最大的问题是该表不链接到任何其他表,这意味着我将如何检索它的正确答案、回复类型、选项类型等?这是我的问题。

有什么帮助吗?

编辑:

下面是其他表格:

问题表

SessionId QuestionId  QuestionContent             NoofAnswers ReplyId QuestionMarks OptionId
AAA       1           What is 2+2?                  1          1          5         2
AAA       2           What is 4+4 and 3+3?          1          2          5         3
ABC       3           What is square root of 144?   1          1          7         5

答案表:

AnswerId(auto) SessionId QuestionId  Answer
1              AAA       1           B
2              AAA       2           A
3              AAA       3           D
4              ABC       1           A

回复表:

ReplyId ReplyType
1       Single
2       Multiple

选项表:

OptionId  OptionType
1         A-C
2         A-D
3         A-E
4         A-F
5         A-G

现在假设 SessionId“AAA”被删除,这意味着“Question”表中 SessionId 包含“AAA”的所有相应行都将被删除。但刚刚意识到相应的答案也会如此。

我需要帮助以某种方式设置一些东西来存储以前的问题及其详细信息(答案、回复类型、选项类型)等,这样即使问题和答案因为 session 已被删除而被删除,老师也能知道可以如何挑选出存储在某处的问题,以便老师仍然可以选择这些问题及其相关答案、选项类型、回复类型等。

最佳答案

快速...您可以更改 session 表的结构并添加 bool 字段,假设“事件”。然后,对该表运行查询,并将 active 设置为 TRUE。 并且,只需将值更改为非事件状态,而不是删除 session 。因此,下次当您需要时,只需检查 active=TRUE 即可。

关于php - 数据库表不与任何其他表关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983196/

相关文章:

mysql - 有没有办法将整个 MySQL 数据库转换或导出为有效的 CSV 文件?

php - 在 zend 框架 2 中不是空条件

当按下下一个按钮时,PHP 分页不会改变

sql - 如何在我的查询中添加组内的行号

mysql - 我如何运行 if 语句

php - Laravel 数据表 : How to sort column with the second data

php - CURLOPT_FOLLOWLOCATION

php - CakePHP 2.4 在单个 Select 查询中为每个事件获取 10 条记录

php - 正则表达式用连字符替换除第一个和最后一个之外的特殊字符

mysql - 我想进一步查询,但不知道如何