我正在使用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是光子,从那里,我将从数据库查询以获取路径并显示图像。

我的问题:

  1. 什么是照片共享网站(例如Flickr)的最佳数据库设计?

  2. 如果我继续在“照片”文件夹中创建新文件夹,是否会有任何问题。如果成千上万的用户注册了怎么办?什么是最好的做法

  3. 我应该保留什么大小的照片?目前,我仅存储缩略图(100x100)和(最大)1600x1200 PX照片。

  4. 在开发照片共享网站时,我应该注意什么?

有帮助吗?

解决方案

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-关于图像上传安全性的地方,有一个很好的答案,但我找不到。病继续看。

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

关于Scalabilty的好话,缩略图的部分对您来说是一件好事: http://www.youtube.com/watch?v=zw5_eekec28. 。该视频讨论了您可能感兴趣的Ext3文件系统中的每个文件限制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top