【问题标题】:Should I create separate tables for users and their profiles for a social network database?我应该为社交网络数据库的用户及其个人资料创建单独的表吗?
【发布时间】:2011-02-18 05:06:09
【问题描述】:

我想为社交网络设计一个数据库,为用户提供个人资料。我应该为用户及其个人资料使用单独的表格,还是只为用户和其中的所有属性使用一个表格?

【问题讨论】:

    标签: database-design social-networking


    【解决方案1】:

    如果你想做大,那就为用户做一个单独的。

    用户和属性同表的优势:

    • 更简单的 SQL 查询。
    • 如果您假设您将始终需要这些属性,那么就少了一个连接。

    分表的优点:

    • 在现实生活中,您并不总是需要属性。
    • 当您需要将其他事物与用户配对时,您不需要所有属性。

    【讨论】:

      【解决方案2】:

      如果您要使用关系数据库,我会推荐一个单独的表(规范化、外键等)

      如果您有兴趣尝试其中一个文档存储数据库(例如 MongoDB、CouchDB、RavenDB),那么我会首先考虑您是否在访问用户时通常访问属性。如果是这样,那么您应该将属性作为嵌入文档放置在用户内部。

      祝你好运!

      【讨论】:

        【解决方案3】:

        将它们分开,用户和配置文件松散耦合从长远来看会有所帮助。个人资料可以是社区、组,而不仅仅是用户,所以我建议将它们分开。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-19
          • 1970-01-01
          • 2010-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-11
          相关资源
          最近更新 更多