首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js环境下的数据库体系结构

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

Stack Overflow用户
提问于 2016-08-13 12:10:32
回答 1查看 65关注 0票数 1

比如说,我们有一个应用程序,可以让人们喜欢或不喜欢图片。

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

因为我们不希望人们投票不止一次,所以我们需要一种将picId和userId联系起来的方法。可以这样做:

  • 对于关系数据库,通过使用picId和userId为键的表,
  • 在NoSQL中,通过为每个用户创建一个“文件”并将所有她投票的picIds存储在那里.或者反过来,为每幅图片创建一个文件,并将所有投票通过图片的userIds存储在那里。

DB的这一部分将被深入阅读和编写,因为对于每一次投票,您首先需要检查用户是否已经投票,然后编写新的投票,并更新图片的总票数。

哪个是最好的选择(仅基于技术原因)?

EN

回答 1

Stack Overflow用户

发布于 2016-08-13 18:16:55

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

  • 为图像创建模型ImageModel (猫鼬模型),为用户创建UserModel
  • 将图像存储到数据库中 (您可以使用引用找到它们)
  • ImageModel中,有一个likedislike数组,其中包含喜欢或不喜欢图片的用户的用户名。

这样,喜欢/不喜欢的数量将是数组的长度,您将能够轻松地找出用户喜欢或不喜欢什么。

然而,如果您想要创建一个社交网络应用程序,面向文档的DB并不是最好的选择,因为它们不实现关系,而且您将很难链接到信息和用户。SQL也不好,因为它们不能为大型应用程序提供足够的性能,所以我建议您看看NoSQL图或图文档DB,比如OrientDBNeo4j

我希望它能帮助你,为我的英语(请随时纠正我);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38932586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档