Database 存储和检索多个化身图像大小
我正在建立一个论坛类型的网站,用户将有一个头像。主页将有一个小版本,而单个页面将有一个大版本的化身 因此,为了带宽,我将有不同的尺寸:Database 存储和检索多个化身图像大小,database,Database,我正在建立一个论坛类型的网站,用户将有一个头像。主页将有一个小版本,而单个页面将有一个大版本的化身 因此,为了带宽,我将有不同的尺寸: example.png example_thumb.png 对于不同的尺寸,首选的存储和检索方法是什么 以下是我到目前为止的想法: User Table UserId | AvatarName | AvatarExt 1 | example | .png 这样,只要我知道有一个'u thumb
example.png
example_thumb.png
对于不同的尺寸,首选的存储和检索方法是什么
以下是我到目前为止的想法:
User Table UserId | AvatarName | AvatarExt
1 | example | .png
这样,只要我知道有一个'u thumb'版本,我就可以用相同的查询获得base和thumb版本
或者我应该这样创建一个元表:
UserMeta UserId | Avatar | AvatarType
1 | example.png | original
1 | example_thumb.png | thumbnail
我希望得到一些建议任何一个都可以,不过为了便于使用,我会选择meta表,特别是在扩展预计不会更改的情况下
我看不出将文件名和扩展名存储在单独的列中有任何好处。您的思路是正确的 用户:
id
username
...
化身
id
user_id
avatar_type(original, thumbnail)
file_name
然后你可以做:
select * from avatars where user_id = $user_id and avatar_type='thumbnail'
这可以让你,比如说,允许用户以后在不修改你的表的情况下拥有多个化身。我会避免称它为UserMeta——这并不能真正捕捉到这种关系。从用户到化身,这种关系实际上是一对多的关系。因此,您应该有一个用户表和一个化身表,每个用户的化身表中都有0条或更多记录。根据您当前的需求,每个用户通常有2条记录,但假设您稍后决定允许用户拥有多个化身-您实际上不需要更改此结构来适应这一点。我使用了“UserMeta”作为示例。我完全明白你的意思,把它命名得更好。你帮了大忙,谢谢你。sql语句让一切看起来都很简单!太棒了,谢谢你的帮助!