【问题标题】:Store and Retrieve Multiple Avatar Image Sizes存储和检索多个头像图像大小
【发布时间】:2011-03-09 03:39:22
【问题描述】:

我正在建立一个论坛类型的网站,用户将拥有一个头像。主页将有一个小版本,而单个页面将有一个大版本的头像。

所以为了带宽,我会有不同的尺寸:

example.png
example_thumb.png

不同大小的首选存储和检索方法是什么?

这是我目前的想法:

User Table    UserId  |  AvatarName  |  AvatarExt
              1       |  example     |  .png

这样,只要我知道有一个“_thumb”版本,我就可以使用相同的查询获得基本版本和拇指版本

或者我应该像这样创建一个元表:

UserMeta      UserId  |  Avatar             |  AvatarType
              1       |  example.png        |  original
              1       |  example_thumb.png  |  thumbnail

我想要一些建议

【问题讨论】:

  • 我会回避称它为 UserMeta - 这并没有真正捕捉到这种关系。这种关系实际上是从用户到化身的一对多关系。因此,您应该有一个用户表和一个头像表,每个用户的头像表中有 0 条或更多条记录。根据您当前的需求,您通常会为每个用户拥有 2 条记录,但假设您稍后决定允许用户拥有多个头像 - 您实际上不需要更改此结构以适应这种情况。
  • 我使用 'UserMeta' 作为示例。我确切地知道你的意思是让它成为一个更好的名字。你是一个巨大的帮助,谢谢一群人

标签: database


【解决方案1】:

你在正确的轨道上。

用户:

id
username
...

头像

id
user_id
avatar_type(original, thumbnail)
file_name

那么你可以这样做:

select * from avatars where user_id = $user_id and avatar_type='thumbnail'

这使您可以在不修改表格的情况下允许用户稍后拥有多个头像。

【讨论】:

  • sql 语句让一切看起来如此简单!太棒了,谢谢你的帮助!
【解决方案2】:

任何一个都可以,但为了便于使用,我会使用元表,特别是如果扩展名预计不会改变。

我认为将文件名和扩展名存储在单独的列中没有任何好处。

【讨论】:

    猜你喜欢
    • 2017-05-30
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2014-04-20
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多