2014-02-17 85 views
0

给定一个包含用户详细信息的配置文件表 - 在数据库中存储允许的可选图片的最佳方法是什么?存储阵列 - MYSQL

每个用户都有一个主要个人资料图片 - 然后是三个可选的额外图片。为了可能的扩展性和可维护性,我想也许这三个可选图像可以作为某种排列(〜也可以是一个可为空的字段,如果他们选择不具有任何)可以存储的

请有人建议最好的方法。

感谢

+0

我想一个分隔字符串可能工作,这就是我如何存储它们。不知道这是否是最好的方法。也许一列为主,然后一列为所有可选图像 – thescientist

回答

1

你应该创建一个单独的表来保存照片,避免创建一个包含CSV数据,因为你将需要每次使用时间分割CSV列。更何况更新专栏可能是一场噩梦。

create table picture(
    picture_id int, 
    picture_file blob, /* If storing the file name use varchar*/ 
    profile_id int /* FK to USER */ 
) 

然后在Profile表指示通过一个外键,画面的主要资料图片。

create table user(
    profile_id int, 
    profile_picture_id int /* FK to main picture */ 
) 
0

不,不要将它们存储在基于阵列

创建一个单独的表,而不是让你简档是此表的外键。

table images(
    profileId int, 
    image varchar 
)