存储数组 - MYSQL

时间:2014-02-17 19:30:40

标签: java mysql arrays

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

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

请有人就最佳方法提出建议。

由于

2 个答案:

答案 0 :(得分: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 */
)

答案 1 :(得分:0)

不,不要将它们存储在数组中 -

创建一个单独的表,让你的profileId成为该表的外键。

table images(
    profileId int,
    image varchar
)