比如说,我们有一个应用程序,可以让人们喜欢或不喜欢图片。
这看起来像一个数据密集型的应用程序,正如您所期望的那样,有大量(Dis)类似的请求,因此假设我们选择了Node.js。
因为我们不希望人们投票不止一次,所以我们需要一种将picId和userId联系起来的方法。可以这样做:
DB的这一部分将被深入阅读和编写,因为对于每一次投票,您首先需要检查用户是否已经投票,然后编写新的投票,并更新图片的总票数。
哪个是最好的选择(仅基于技术原因)?
发布于 2016-08-13 18:16:55
假设您使用了MongoDB (面向NoSQL文档的DB),并且您有唯一的用户名。你可以这样做:
ImageModel (猫鼬模型),为用户创建UserModelImageModel中,有一个like和dislike数组,其中包含喜欢或不喜欢图片的用户的用户名。这样,喜欢/不喜欢的数量将是数组的长度,您将能够轻松地找出用户喜欢或不喜欢什么。
然而,如果您想要创建一个社交网络应用程序,面向文档的DB并不是最好的选择,因为它们不实现关系,而且您将很难链接到信息和用户。SQL也不好,因为它们不能为大型应用程序提供足够的性能,所以我建议您看看NoSQL图或图文档DB,比如OrientDB或Neo4j
我希望它能帮助你,为我的英语(请随时纠正我);
https://stackoverflow.com/questions/38932586
复制相似问题