【问题标题】:from mysql to mongodb - designing collections从 mysql 到 mongodb - 设计集合
【发布时间】:2011-02-10 20:34:03
【问题描述】:

我很想知道人们对他们会设计这个收集方案的意见。

我想尝试将 mongodb 用于应用程序(过去 8 年我一直在使用 mysql)

我先给出一个关系表架构。

表格

users
user_friends
user_notifications

articles
article_categories
article_participants

comments

如果我要在 mongodb 中实现该表结构,这是否是定义我的集合的正确方法:

users => array
{
    _id
    email,
    password,
    name,
    ...
    user_friend => array{
        _user_id,
        date_created
    }
    user_notifications => array{
        _notification_id
    }
    my_articles =>array{
        _article_id
    }
}

article
{
    _id,
    content_,
    date_created,
    ...,
    article_category => array{
        _category_id
    }
    article_participants = array{
        _user_id
    } 
    comments=>array{
        _user_id
        name,
        comment,
        date
    }
}

categories
{
    _id,
    _user_id
    name
    comments=>array{
        _user_id
        name,
        comment,
        date
    }
}

请随时评论或解释您将如何组织您的收藏。非常感谢任何帮助。

同样,我什至应该将 mongodb 用于这种类型的应用程序吗? (社交博客分享应用)

【问题讨论】:

    标签: mysql database-design mongodb


    【解决方案1】:

    我认为最好的方法是使用值对象,例如嵌入实体对象的对象。

    检查这个link for more details

    值对象:包含属性但没有概念标识的对象。它们应该被视为不可变的。

    示例:人们在兑换美元钞票时,一般不会区分每张唯一的钞票;他们只关心美元钞票的面值。在这种情况下,美元钞票是价值对象。但是,美联储可能会关注每张独特的票据;在这种情况下,每个法案都是一个实体。

    【讨论】:

      【解决方案2】:

      Mongodb 将是此类应用程序的绝佳工具。

      在 MongoDB 中,嵌入比使用额外的表引用更有效。

      有关更多信息,您可以查看此链接http://www.mongodb.org/display/DOCS/Schema+Design

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 2020-09-27
        • 1970-01-01
        • 2018-06-09
        • 2012-03-08
        • 1970-01-01
        • 2018-02-22
        相关资源
        最近更新 更多