数据库中单个列中的多个值?

时间:2015-08-05 01:38:35

标签: php mysql image

我知道用户可以为他或她的画廊上传最多5张图片,并可以选择其中一张作为他或她的个人资料照片。是否可以在一列中保存所有5个图片的名称,例如image?或者我是否必须制作5个单独的列来存储这些文件名?

作为一个例子,我可以创建一个名为images的列并以这种方式存储值:

{"129cc68678d1e67d18d49d93cec040ce":{"filename":"129cc68678d1e67d18d49d93cec040ce.jpg"},"97ac1e22ea3fd6f02362233d8147ecb5":{"filename":"97ac1e22ea3fd6f02362233d8147ecb5.jpg","primary":true},"eeb239b4edff7e1a09246d38977a5646":{"filename":"eeb239b4edff7e1a09246d38977a5646.jpg"},"55a3810c1b0eaee039c753c12dccbc38":{"filename":"55a3810c1b0eaee039c753c12dccbc38.jpg"}}

主要:true表示它是特色图片/个人资料图片。

2 个答案:

答案 0 :(得分:0)

你的两个提案 - 一列和五列中的5条信息 - 都是坏主意。如果您想将限制更改为4,或6或20?

,该怎么办?

规范化您的数据。为图像创建一个表,为用户图像关系创建另一个表。在第二个表中,为个人资料图片设置一个标志。

答案 1 :(得分:0)

您要做的是创建另一个表来保存图像文件名。您的画廊表将包含ID以及您为库存储的其他信息,然后您的图像表将包含三列。一个用于其ID,一个用于文件名,另一个用于存储其所属图库的ID(称为外键)。