PHP MYSQL - 一列中的许多数据

时间:2008-11-15 14:36:10

标签: php mysql database-design

我需要在mysql中存储100-200个数据,这些数据将通过管道分开..

任何想法如何将它存储在mysql上?我应该使用单个列还是应该制作多个列?我不确切知道用​​户将输入多少数据。

我制作了一个表单,它停在需要存储多个数据的部分。

任何人都知道如何在单列中存储多个数据,还是有其他方法?

请帮帮我..

非常感谢

3 个答案:

答案 0 :(得分:4)

您应该使用数据源的ID实现表。此ID将用于对所有这些相似数据进行分组,因此您无需事先知道自己拥有多少数据。

您的表格列和数据可以设置如下:

sourceID        data
--------        ----
       1         100
       1         200
       1         300
       2         100
       3         100
       3         200

查询数据库时,只需使用相同的sourceID提取所有数据即可。使用上面的数据,以下查询将返回两个数据。

SELECT data
FROM dataTable
WHERE sourceID = 3

如果您有多个表,则需要使用JOIN语法将它们相互关联。假设您有一个包含用户数据的主表,并且您希望将所有这些输入数据与每个用户相关联。

userID    userName    otherData
------    --------    ---------
     1         Bob          xyz
     2         Jim          abc
     3         Sue        lmnop

如果要将此表(userTable)中的数据与来自dataTable的数据连接,请使用如下查询:

SELECT userID, userName, data, otherData
FROM userTable
LEFT JOIN dataTable
ON userTable.userID = dataTable.sourceID
WHERE userTable.userID = 1

此查询将为您提供ID为1的用户的所有数据。这假定数据表中的sourceID使用user表中的userID来跟踪额外数据所属的人。< / p>

请注意,这不是SQL中唯一的JOIN语法。您可以了解其他类型的联接here

答案 1 :(得分:1)

如果您有来自此数据的表单,请将表单中的每个输入存储到其自己的单独列中。

查找数据中的关系:听起来你有一个“有很多”的关系,这表明你可能想要一个链接表,在那里你可以做一个简单的连接查询......

将多个数据存储在一个列中将是查询和更新的噩梦,除非您存储XML,事件然后它会给我做噩梦......

答案 2 :(得分:1)

听起来你需要一个联接表。在两个表中只需要您需要的数据,使用两个表的ID创建第三个表,然后如果您需要100,200,300或更多,则无关紧要。