一段时间以前,Digg的一位开发人员发布了这篇博客 "http://about.digg.com/blog/looking-future-cassandra",其中描述了MySQL中未被最优解决的问题之一。这被引用为他们转向Cassandra的原因之一。
我一直在使用MongoDB,我想了解如何实现这个问题的MongoDB集合。
根据文章,在MySQL中,此信息的架构如下:
这个问题在社交网络场景的实现中是普遍存在的。人们结识了很多朋友,而这些朋友也会点赞很多东西。快速向用户展示他/她的朋友正在做什么非常关键。
我知道有几篇博客提供了一个针对这个问题的纯RDBMs解决方案,包括索引;然而我很好奇如何在MongoDB中解决这个问题。
我一直在使用MongoDB,我想了解如何实现这个问题的MongoDB集合。
根据文章,在MySQL中,此信息的架构如下:
CREATE TABLE `Diggs` (
`id` INT(11),
`itemid` INT(11),
`userid` INT(11),
`digdate` DATETIME,
PRIMARY KEY (`id`),
KEY `user` (`userid`),
KEY `item` (`itemid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `Friends` (
`id` INT(10) AUTO_INCREMENT,
`userid` INT(10),
`username` VARCHAR(15),
`friendid` INT(10),
`friendname` VARCHAR(15),
`mutual` TINYINT(1),
`date_created` DATETIME,
PRIMARY KEY (`id`),
UNIQUE KEY `Friend_unique` (`userid`,`friendid`),
KEY `Friend_friend` (`friendid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个问题在社交网络场景的实现中是普遍存在的。人们结识了很多朋友,而这些朋友也会点赞很多东西。快速向用户展示他/她的朋友正在做什么非常关键。
我知道有几篇博客提供了一个针对这个问题的纯RDBMs解决方案,包括索引;然而我很好奇如何在MongoDB中解决这个问题。