共享照片网站的数据库设计?

Posted

技术标签:

【中文标题】共享照片网站的数据库设计?【英文标题】:Database design for sharing photos site? 【发布时间】:2011-02-21 04:46:16 【问题描述】:

我正在使用 phpmysql。如果我想做一个分享照片的网站,上传和显示照片的最佳数据库设计是什么。这就是我的想法:

domain:
  |_> photos
  |_> user

登录用户将上传照片 [http://www.domain.com/user/upload.php]

照片存储在文件系统中,照片的路径存储在数据库中。所以,在我的照片文件夹中会是:photos/userA/subfolders+photos、photos/userB/subfolders+photos、photos/userC/subfolders+photos 等

公众/其他人可以在以下位置查看他的照片: [http://www.domain.com/photos/user/?photoid=123]

其中 123 是 photoid,从那里,我将从数据库中查询以获取路径并显示图像。

我的问题:

    图片共享网站(如 flickr)的最佳数据库设计是什么?

    如果我继续在“照片”文件夹中创建新文件夹,会有任何问题吗?如果数十万用户注册怎么办?最佳做法是什么

    我应该保留多大尺寸的照片?目前我只存储了缩略图(100x100)和(最大)1600x1200 像素的照片。

    图片分享网站开发还有哪些需要注意的地方?

【问题讨论】:

我是这个网站的新手,但我会根据“赞成”票的数量自动选择最佳答案。对不起。 我已经接受了我之前的所有问题。 不,您必须选择您认为最有帮助的答案。如果人们看到您以正确的方式参与网站,他们会更有帮助。 【参考方案1】:

1 - 您的数据库至少应包含

users: user_id, user_name, pw_hash, salt
photos: photo_id, user_id, photo_path

将为您想要的额外功能添加字段(标签、last_seen、photo_upload_date、photo_views 等...)

2 - 不要过早优化。我会为每个用户添加一个用户/用户名文件夹并将用户照片转储到那里。

3 - 我建议保留原始大小、缩略图和适合您网站的大小。因此,如果您的布局包含最大宽度为 850 像素的照片,请将所有照片调整为最大 850 像素宽。如果您的布局发生变化,您可以使用原始图片并将其调整为新大小。

4 - 关于图像上传安全的某处有一个很好的答案,但我找不到它。生病继续找。

考虑使用 CDN:https://***.com/questions/72369/whats-the-best-cdn-for-image-hosting-on-a-high-volume-web-site

关于可扩展性的好谈话,缩略图部分很适合您观看:http://www.youtube.com/watch?v=ZW5_eEKEC28。该视频讨论了您可能感兴趣的 ext3 文件系统中每个目录的文件限制。

【讨论】:

感谢您的回答,先生 =)

以上是关于共享照片网站的数据库设计?的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Photoshop CC 2019.0.5 for Mac 中文共享版 - 专业图片处理工具

最适合照片共享网站的语言:PHP、Python、Ruby 还是其他? [关闭]

如何设计数据库中 USER 和 FAVORITE(或 LIKE)模型之间的关系

精选:3个可以下载免费的高质量照片的网站

工作小记——一账通平台设计分析及结果

与 iCloud 共享文本文档或照片