Node.js环境中的数据库体系结构

时间:2016-08-13 12:10:33

标签: sql node.js nosql

假设我们有一个允许人们喜欢或不喜欢图片的应用。

这看起来像一个数据密集型应用程序,正如您所期望的那样(dis)类似请求,所以我们选择了Node.js。

由于我们不希望人们多次投票,我们需要一种方法来关联picId和userId。这可以做到:

  • 使用关系数据库,使用picId和userId为键的表,
  • 使用NoSQL,创建一个'文件'为每个用户存储并存储她投票的所有图片......或者相反,为每张图片创建一个文件并存储所有已投票的用户ID。

这部分数据库将被密集阅读和写入,至于您首先需要检查用户是否已经投票,然后写新投票,以及更新图片的总投票数。

哪种选择最佳(仅基于技术原因)?

1 个答案:

答案 0 :(得分:1)

假设您使用MongoDB(NoSQL面向文档的数据库),并且您拥有唯一的用户名。你可以这样做:

  • 为图片创建模型ImageModel(猫鼬模型),为用户创建UserModel
  • Store the images into the database(您可以使用引用来查找它们)
  • ImageModel中,您有一个likedislike数组,其中包含了您喜欢或不喜欢图片的用户的用户名

这样,喜欢/不喜欢的数量将是数组的长度,您将能够轻松找到用户喜欢或不喜欢的内容。

然而,如果你想创建一个社交网络应用程序,面向文档的数据库不是最好的选择,因为它们不会实现关系,你很难链接信息和用户。 SQL DB不是很好,因为它们没有为大型应用程序提供足够的性能,所以我建议你看一下NoSQL Graph或Graph-Document DB,如OrientDB或{{3} }

我希望它能帮助你并为我的英语而烦恼(随意纠正我);)