繁体   English   中英

MongoDB 中的数据库项目

[英]Database project in MongoDB

我编写社交媒体应用程序,我是 noSQL 数据库的新手。 我想问一些关于我的数据库项目的建议和意见。

@更新的图片在此处输入图片说明

我还想再做一张通知表(当有人评论时,比如我们的帖子/评论,以及当有人接受我们对朋友的邀请时)。 我想过制作 3 个不同的表格 - notification_post、notification_comment、notification_friend_accept,但我不知道这是个好主意......

看起来你的数据库是非常关系型的,这是使用关系型数据库的一个强有力的指标,但让我们走吧!

当我们设计 noSQL 数据库时,比如 MongoDB,我们需要避免规范化,或“过度规范化”。 这意味着重复比避免重复更有趣。

MongoDB 有一些设计模式,也许最简单的一种是Extended Reference 当需要大量连接来检索数据时,您会发现这很有用。 这种设计模式告诉复制最频繁的数据。 另一个是子集,这可能会有所帮助。

每次你带来一个帖子,你可能会显示评论数,一些评论,喜欢数等等。 考虑到这一点,您可以将喜欢的对象放在评论和帖子中,从而删除收藏。 这避免了对另一个集合的第二次查找。 可能删除last_like属性并按日期降序对“喜欢数组”进行排序并拉出第一个。

请记住,MongoDB 中的文档是原子的,它们在进行任何过滤之前都已完全加载到 RAM 中。

您当然可以这样做,但请记住,您将不得不执行 3x 查询。 也许通用的Notification{ notifcationTypeEnum: 'abc', ...}会更合适。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM