PHP:将动态数量的值添加到MySQL数据库中

时间:2013-11-21 09:38:40

标签: php mysql database database-design

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

它看起来像这样:

 ___________________________________
|   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 * 另外,因为问题集是针对每个用户的,所以问题包需要保持在一行中。即我无法在自己的行中添加问题。在上面的示例中,ID1是单个用户,My Question 1MyQuestion是该用户的问题。

3 个答案:

答案 0 :(得分:1)

我认为最简单的方法是将数据库表格设为:

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

所以用户会有多少问题并不重要。

答案 1 :(得分:0)

在这种情况下,您可以使用基于文档的NOSQL解决方案,如MongoDB,或创建一个包含id,user_id和问题的表。

答案 2 :(得分:0)

您可以尝试的一个选项是通过创建另一个表来拆分它。所以要清楚一个用户表和另一个用于提问的表。

在表用户中,您可以拥有user_id和user用户名,在表格问题中,您可以拥有unique_id,问题,然后是引用问题用户的外键约束。

通过这种方式,您可以单独或全部访问它们。