【问题标题】:creating a database for a photo gallery with comments为带有评论的照片库创建数据库
【发布时间】:2010-10-07 16:27:55
【问题描述】:

我正在创建一个社交网络,并希望拥有一个与 facebook 类似的照片库。我猜我需要使用 AJAX,但我想为每张照片设置一个 cmets 部分。我只是想知道围绕这个设计数据库的最佳方法是什么。我只是制作一张 cmets 表吗?我是否会遇到性能问题,因为我确信每个用户都会有不止一张照片,所以目录会变得非常大。假设我有 1000 万用户,每人有 100 张照片,每张照片有 20 亿个条目,每张照片只有 1000 万,如果这个数字增长会发生什么。这会大大减慢网站的速度。我现在知道我可以开发一些简单的东西,比如一张桌子,但我想快速创建一些东西,并且对未来有所了解。如果有人可以帮助我解决这个问题,我将不胜感激。

【问题讨论】:

  • “那只有 1000 万用户”...我佩服你的野心 :)

标签: mysql database database-design social-networking


【解决方案1】:

如果您有 1000 万用户,您将有钱购买更多资源来处理请求:)

我会为 cmets 设计一张桌子,并为照片设计另一张桌子。这两个表当然是通过一对多的关系连接起来的。

一个好的、正确配置的 RDMBS 不会关心与 cmets 一起存储和选择照片。这是数据库的工作,别担心。

【讨论】:

    【解决方案2】:

    选择大多数社交网站(如 facebook 等)使用的关联数组 使用有点像:

    photo-gallery:
     {
      photo:
      {
       id:
       caption:
       path:
       comment:
       {
        id:
        commentor-id:
        comment-description:
       }
       comment:
       {
        id:
        commentor-id:
        comment-description:
       }
       .
       ....and so on
      }
     }
    

    【讨论】:

    • 每张照片只允许一个评论(否则,需要为每张照片评论复制标题、ID 和路径数据)。
    • 编辑了上面的数据库模式,现在我们可以在每个图像数组元素中为 cmets 拥有多个关联数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多