【问题标题】:PHP: Adding dynamic number of values into a MySQL databasePHP:将动态数量的值添加到 MySQL 数据库中
【发布时间】:2013-11-21 09:38:39
【问题描述】:

我有一个带有文本字段的页面,用户可以在其中输入数据(在我们的情况下,它们是问题)。

它看起来像这样:

 ___________________________________
|   Enter your question...          |  +
|___________________________________|  

如果用户点击“+”,则会出现另一个字段:

 ___________________________________
|   User's first Question..         | 
|___________________________________|  
 ___________________________________
|   Enter your next question...     |  +
|___________________________________|  

...等等。这些问题中的每一个都需要存储在数据库中,但是问题的数量是动态的(假设为了论证,我们将最大问题限制为 100 个问题),实现这一点的最佳方法是什么? 我应该为每个问题创建一个新列吗?那真的不会污染数据库吗?理想情况下,我的数据库中只有一个名为“问题”的列,并将所有问题存储在该列中。这可能吗?

类似这样的:

++++++++++++++++++++++++++++++++++++++++++++++
+ id |  Questions                            +
++++++++++++++++++++++++++++++++++++++++++++++
+  1 |  My Question 1,MyQuestion,            +
+  2 |  Another Question, And Another one,   +
+  . |  ......                               +
++++++++++++++++++++++++++++++++++++++++++++++

*编辑* 说清楚 - 我需要能够稍后检索每个问题并能够单独隔离每个问题(例如作为 PHP 数组)。

*EDIT2* 此外,由于这组问题是针对每个用户的,因此这组问题需要保留在一行中。 IE。我无法在他们自己的行中添加问题。在上面的示例中,ID1 是个人用户,My Question 1MyQuestion 是该用户的问题。

【问题讨论】:

  • 是的。在数据库中只保留一列并将新问题作为新行插入
  • 写了一个编辑来澄清 - 对不起
  • 你可以为用户特定的问题添加 user_id

标签: php mysql database database-design


【解决方案1】:

我相信最简单的方法是让你的数据库表像这样:

++++++++++++++++++++++++++++++++++++++++++++++
+ id | user_id | question                    +
++++++++++++++++++++++++++++++++++++++++++++++

因此,用户有多少问题并不重要。

【讨论】:

    【解决方案2】:

    您也可以尝试通过创建另一个表来拆分它。所以要明确一张表供用户使用,另一张供提问。

    在表用户中,您可以有一个 user_id,也许还有用户名,在表问题中,您可以有一个 unique_id、问题,然后是引用问题用户的外键约束。

    这样您可以单独或一起访问它们。

    【讨论】:

      【解决方案3】:

      在这种情况下,您可以使用基于文档的 NOSQL 解决方案,例如 MongoDB,或者创建一个带有 id 、 user_id 和 question 的表。

      【讨论】:

      • 我相信为此目的在系统中引入另一种技术将是一个严重的错误。 ;)
      • @sam yi,不,因为这些问题和答案不仅取决于发布问题的人。来自 Stackoverflow 的问题可能会被许多 IT 学生参考。因此,我们有责任在回答时添加一些额外但相关的信息。是吗?
      • 即使是这样。 NoSQL 确实适用于关系数据库不足的边缘情况。我知道很多开发人员都像孩子一样,他们想要获得任何新的和酷的东西,但是在我们仍然严重依赖 AS/400 系统的企业世界中,这些“酷”的玩具来来去去。不是说NOSql没用……只是说炒作有点过分了。
      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2023-04-04
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多