共享照片网站的数据库设计?
-
30-09-2019 - |
题
我正在使用PHP和MySQL。如果我想进行共享照片网站,那么什么是最佳的数据库设计,用于上传和显示照片。这就是我的想法:
domain:
|_> photos
|_> user
登录用户将在[http://www.domain.com/user/upload.php
这些照片存储在文件系统中,以及存储在数据库中的途径。因此,在我的照片中,文件夹就像:照片/usera/subfolders+照片,照片/userb/subfolders+照片,照片/userc/subfolders+照片等
公共/其他人可能会在:[[http://www.domain.com/photos/user/?photoid=123
其中123是光子,从那里,我将从数据库查询以获取路径并显示图像。
我的问题:
什么是照片共享网站(例如Flickr)的最佳数据库设计?
如果我继续在“照片”文件夹中创建新文件夹,是否会有任何问题。如果成千上万的用户注册了怎么办?什么是最好的做法
我应该保留什么大小的照片?目前,我仅存储缩略图(100x100)和(最大)1600x1200 PX照片。
在开发照片共享网站时,我应该注意什么?
解决方案
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-我建议保持原始尺寸,缩略图和适合您网站的尺寸。因此,如果您的布局将最大宽度为850px的照片大小为850px宽度。如果您的布局更改,则可以使用原始图片并将其调整到新尺寸。
4-关于图像上传安全性的地方,有一个很好的答案,但我找不到。病继续看。
关于Scalabilty的好话,缩略图的部分对您来说是一件好事: http://www.youtube.com/watch?v=zw5_eekec28. 。该视频讨论了您可能感兴趣的Ext3文件系统中的每个文件限制。