共享照片网站的数据库设计?
Posted
技术标签:
【中文标题】共享照片网站的数据库设计?【英文标题】:Database design for sharing photos site? 【发布时间】:2011-02-21 04:46:16 【问题描述】:我正在使用 php 和 mysql。如果我想做一个分享照片的网站,上传和显示照片的最佳数据库设计是什么。这就是我的想法:
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 还是其他? [关闭]