php - 存储、递增和重用索引的正确方法是什么

标签 php mysql auto-increment

我正在构建我的第一个定制 PHP/MySQL 应用程序。是一种车辆检测调查应用。

调查本身是通过查询我存储问题的数据库构建的,并使用循环将它们输出到页面,每个页面都有唯一的 ID 和名称。

目前一切正常。我可以成功提交结果并访问 $_POST 数组,并且可以看到针对正确键存储的答案。

我现在正处于希望保存结果的阶段。

我的意图是使用一个表格来记录每个答案使用一行的结果。我计划使用的列是 survey_id、question_id(数组中的键)、question_answer。

我的问题是如何正确存储和递增调查 ID 本身?如果我以单行包含单个调查的所有结果的方式记录调查,我可以自动递增 survey_id 字段,但是当我设计应用程序时,我认为这不是最可靠的方式存储结果。每项调查都将超过 100 行,并且对调查布局的任何更改都将难以实现(我怀疑)。

我最初的想法是创建一个独立的表来记录和增加调查 ID,然后查询它以填充结果表中的 survey_id。

我很想听听实现这一目标的最佳实践。

最佳答案

最好的方法是使用三个表:

  • 调查
  • 问题
  • 答案

Surveys 可能有调查 ID、创建调查的用户等。 Questions 将包含问题 ID、问题所针对的调查 ID 以及问题的内容。最后,Answers 将包含问题的答案,很可能包含答案 ID、问题 ID、回答问题的用户及其答案。

本质上,你最初的想法

create a stand alone table to record and increment survey ID's and then to query this to populate the survey_id in the results table.

在这种情况下是正确的。

关于php - 存储、递增和重用索引的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993733/

相关文章:

php - 将数组从 Controller 传递到模型 CodeIgniter

php - 如何使用 PHP 和 Python 进行 STDIN 和 STDOUT 以使用 html2text 并获取 Markdown 格式的文本?

php - 从 MySQL 插入和显示图像

一旦插入变量,MySQL 过程就会表现得很奇怪

mysql - 仅在需要时使用自动递增

php - SQL 相关子查询 - MAX 所需的帮助

php - preg_replace 问题

mysql - 通过使用 where IN 运算符进行排序

python - 使用字符串django自动递增id值

mysql - mysql 的 auto_increment 有问题吗?