Azure DocumentDB与每个用户多个PDF文件的Blob存储 [英] Azure DocumentDB vs Blob Storage for multiple PDF files per user

查看:67
本文介绍了Azure DocumentDB与每个用户多个PDF文件的Blob存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发我的第一个应用程序,作为一个学习项目,我做了所有的事情:

  • 客户端前端(角度)
  • 后端(OWIN自托管,ASP.NET Web Api 2)
  • 数据库和托管(Azure部署)

到目前为止,这是一个学习过程,我已经在我的应用程序中使用令牌完成了登录/注册授权,但我使用身份框架和Azure SQL DB(存储在为我创建的dbo.AspNetUser表下)存储我的用户凭据。

为了配合我的USERS表,我希望有一个表来实际存储与我的用户相关联的元数据,在我的应用程序中:

  • 信用卡信息

  • PDF文件(BLOB格式,但与每个帐户关联的多个文件)这些BLOB文件是在上载PDF和 稍后在他们下载时转换回PDF格式。

我看到在Azure门户上有一个文档NoSQL数据库以及BLOB存储。我想知道是否可以将信用卡信息添加到我现有的AspNetUser表中,这样我只需将PDF数据单独存储在单独的表中就可以简化我的工作。

我也不确定表的结构,因为一个用户可以有许多PDF文件。我的业余知识认为,也许有一个键值数据库可能会更好,格式为:

  Key-UserName            Value- JSON object of BLOB's with Id's.

我觉得,对于检索表示PDF的BLOB的PDF表,如果我可以将ID与每个条目相关联,并计算出一个JSON对象,我可以添加我希望查询的任意多个字段,但不确定,则检索所有这些字段并不是最好的。

显然,这还为时过早,我只是在寻找资源和经验,而不是直接的答案。

推荐答案

对于信用卡信息,Azure SQL中用户ID和CC号之间的简单映射表就足够了,并允许您处理用户和信用卡之间的一对多关系(您没有指定,所以这现在可能不是问题...晚点再说?)。

关于PDF...从成本或性能的角度来看,DocumentDB不是您理想的解决方案。它不太适合存储和检索像PDF这样的二进制数据。在您的场景中,我会强烈考虑使用Blob存储来保存PDF内容本身,并通过SQL Azure中将用户ID与Blob URI相关联的映射表将PDF映射到用户。如果您需要存储和查询PDF的额外元数据,您可以在SQL映射表中使用额外列。在创建或删除BLOB时同步映射到BLOB会有一些负担,但这是云中相当常见的数据场景。

祝你好运!

这篇关于Azure DocumentDB与每个用户多个PDF文件的Blob存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆