假设我们有一个允许人们喜欢或不喜欢图片的应用。
这看起来像一个数据密集型应用程序,正如您所期望的那样(dis)类似请求,所以我们选择了Node.js。
由于我们不希望人们多次投票,我们需要一种方法来关联picId和userId。这可以做到:
这部分数据库将被密集阅读和写入,至于您首先需要检查用户是否已经投票,然后写新投票,以及更新图片的总投票数。
哪种选择最佳(仅基于技术原因)?
答案 0 :(得分:1)
假设您使用MongoDB(NoSQL面向文档的数据库),并且您拥有唯一的用户名。你可以这样做:
ImageModel
(猫鼬模型),为用户创建UserModel
ImageModel
中,您有一个like
和dislike
数组,其中包含了您喜欢或不喜欢图片的用户的用户名这样,喜欢/不喜欢的数量将是数组的长度,您将能够轻松找到用户喜欢或不喜欢的内容。
然而,如果你想创建一个社交网络应用程序,面向文档的数据库不是最好的选择,因为它们不会实现关系,你很难链接信息和用户。 SQL DB不是很好,因为它们没有为大型应用程序提供足够的性能,所以我建议你看一下NoSQL Graph或Graph-Document DB,如OrientDB或{{3} }
我希望它能帮助你并为我的英语而烦恼(随意纠正我);)