如何将照片标记为用户“个人资料照片”?

时间:2010-08-13 21:25:08

标签: php mysql database-design

我正在构建一个应用,每个用户都可以拥有多个配置文件。用户可以为每个配置文件上传多张照片等。

文件夹结构类似于

public_html/
upload/
    user-123/
        profile-199/
        profile-321/
            images/
                123423.png

我将在每张个人资料和每张照片之间建立一对多的关系,但我正在努力了解如何将照片标记为特殊照片和用户“个人资料照片”。

我建议的表结构是这样的

id
profile_id
filename  (or maybe extension only, since filename will most likely just be the primary id for that photo)
profile (boolean field of whether this a profile pic or not)
date_added

我应该如何处理特殊图像,例如个人资料图片?

编辑:很抱歉,如果我不清楚的话。我希望每个用户都能够拥有多个配置文件,每个配置文件都有很多照片。就像Facebook一样,你可以有很多照片,但随时只有一张个人资料照片。

3 个答案:

答案 0 :(得分:0)

这样会有效,但是如果有一个问题是可以将多张照片标记为个人资料照片,除非你特别注意防止这种情况发生。

另一种设计是使用包含user_idspecial_photo_id列的表格,其中photo_id是照片表格中的外键。这有一个稍微不同的问题:现在可以有一张不属于用户的特殊照片。

答案 1 :(得分:0)

您可以在users表中存储一个字段(其中存储了用户名和其他信息),其中profile_id字段init指向profiles表。通过这种方式,您可以获得配置文件的一种可能性,并远离识别它。

考虑它只有在你有一个用户表和一个单独的配置文件表时才会起作用。

答案 2 :(得分:0)

图像表如下所示:

id
profile_id
filename    
date_added

并在配置文件表中添加“profile_image_id”列?这将是您特殊形象的身份。

我想你会有比非特殊的非特殊图像。因此,大多数情况下,您建议的字段'profile(boolean)'将为0。

编辑:我相信@Iznogood也在说同样的话。