mysql - 从 mysql 到 mongodb - 设计集合

标签 mysql database-design mongodb

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

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

我先给出一个关系表的schema。

表格

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? (社交博客分享应用)

最佳答案

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

检查这个link for more details

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

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

关于mysql - 从 mysql 到 mongodb - 设计集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962344/

相关文章:

mysql - 向 M.B.A. 教授 Microsoft SQL Server 的复杂性(以及它与 MySQL 有何不同?)

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - 跨多个系统转换和同步数据

mysql - 按与 MYSQL 和 Mongodb 匹配的 WHERE 数进行排序

mongodb - 如何构造查询以在 MongoDB 中按键对进行过滤?

mysql - Select all from table where user_id 存在于两个表中

php - 在 php/mysql 中显示对其他人隐藏的 friend 项目列表的最佳方式

mysql - 我需要为不同的用户创建不同的登录页面吗

php - php中带有固定标签的简单搜索功能,用于mysql数据库

mongodb - 给定 ID,查找 dueAt 小于 ID.dueAt 的条目