1

假设大多数用户不会设置他们的头像,最好在创建新用户时在用户的表头像列中存储 default.jpg 之类的值,或者检查控制器/视图中是否存在值,如果它为空,则显示默认值?

4

3 回答 3

3

我会把它留空,然后通过代码执行检查。

  1. 它让我可以选择在以后更改,例如更改为,default.jpgdefault.png不必接触数据库。或者做其他有趣的事情,比如 SO 如何生成 'default' avatars

  2. 感觉更干净了(用户没有选择头像,所以留空。如果用户不输入年龄,你会补吗?不会。)

顺便说一句,您真的应该在实施另一个头像之前查看gravatar.com 。我喜欢我只需将我的头像一次上传到一个网站,所有其他网站(如 SO)都会自动使用它。

于 2012-09-10T01:11:08.087 回答
0

我会选择让您的“创建新用户”方法将其default.jpg放入数据库中。这使您的用户表中的内容保持一致,因此您的代码不必在字段为空时进行检查或处理特殊情况。它还在代码中为您提供了一个必须跟踪它的位置。

当您创建用户时,您想要进行验证和检查并在必要时防止/修复事情。越往下走,你越让这种情况变得越难管理。

于 2012-09-10T00:51:28.403 回答
0

将 NULL 放入数据库可以节省存储空间,而不是拥有许多相同(因此是冗余的)default.jpg BLOB。

当然,您可能将图像存储在文件系统中,在这种情况下,节省的存储空间会小得多(因为只会重复文件路径,而不是文件本身)。或者,您可以设计一种在用户之间共享 BLOB 的方法。但是所有这些策略都使查询复杂化,并可能影响性能/完整性......

于 2012-09-10T01:51:09.390 回答