我需要在mysql中存储100-200个数据,这些数据将通过管道分开..
任何想法如何将它存储在mysql上?我应该使用单个列还是应该制作多个列?我不确切知道用户将输入多少数据。
我制作了一个表单,它停在需要存储多个数据的部分。
任何人都知道如何在单列中存储多个数据,还是有其他方法?
请帮帮我..
非常感谢
答案 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或更多,则无关紧要。