gpt4 book ai didi

mysql - 在 Azure 中托管 Web 应用程序时,尝试了解哪个数据库选项适合我

转载 作者:行者123 更新时间:2023-11-29 11:38:44 25 4
gpt4 key购买 nike

我正在自上而下创建我的第一个 Web 应用程序,作为一种学习体验,我想将其部署在 Azure 中。我想从一个空的 Web 项目开始,这样我就可以真正看到构成 Web API 服务的所有核心组件。

我已使用本教程创建的模板创建了应用程序:http://www.daniellewis.me.uk/2015/03/23/web-api-with-owin-bootstrap-and-angularjs-from-scratch-part-1/

并且正在按照本教程添加用户身份验证: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

现在我必须将连接字符串添加到我的 web.config 文件中:

   <connectionStrings>
<add name="AuthContext" connectionString="Data Source=.\sqlexpress;Initial Catalog=AngularJSAuth;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>

我假设(我是个菜鸟)我的应用程序失败了,因为显然它没有连接到任何类型的数据库服务器。所以现在我已经到了这样的地步:我猜想选择我的数据库选项,设置它,创建表?,然后将正确的连接字符串传递到我的 web.config 中。

我想我会尽可能地坚持使用 Azure,因为那是我将要部署的地方(使用 Angular 前端、OWIN C# 后端开发此应用程序),但我看到有一些不同的数据库选项可供我使用,无论是Azure SQL 数据库或 Azure NoSQL DB。

我的数据库和应用程序需求是:

  • 存储用户凭据(用户名、密码、信用卡信息)
  • 临时存储 PDF 文件(30 天)

在此应用程序中,使用此信息创建的用户帐户数量很少,但会从与每个帐户关联的 PDF 文件中读取大量内容。

我主要寻找关于什么数据库结构对我来说是正确的意见,我显然对以下方面有误解:

  • 如果一个 SQL 数据库可以满足我的所有需求,或者如果我需要一个数据库来存储用户帐户和信息,然后需要另一个数据库来存储 PDF
  • 存储 PDF 的最佳方式是将它们转换为 BLOB 并在我的应用程序逻辑中来回处理转换,还是存储实际文件?文档数据库?
  • 如何处理我的临时存储用例(PDF 文件将存储 30 天),或者我是否应该单独处理这个问题。

我知道这很多,但我主要是在寻找经验和资源来了解更多信息,而不是直接的答案。

谢谢

最佳答案

您所遵循的教程构建在 ASP.NET Identity 子系统之上,该子系统具有抽象用户底层存储等的提供程序模型。在您的情况下,最直接的方法是使用 Azure SQL 数据库:

https://azure.microsoft.com/en-us/services/sql-database/

...以及第二个链接中引用的 Entity Framework 提供程序。 Azure SQL DB 很好,因为您可以使用 SQL Management Studio 等熟悉的工具来进行设置和探索。

请注意,还有其他提供程序,您当然可以自由地编写自己的提供程序。例如,这是与 MongoDB 对话的一个:

http://devblog.weshigbee.name/posts/building-a-mongodb-provider-for-the-new-asp.net-identity-framework-part-2-rolestore-and-sample

除非您有令人信服的理由做出其他选择,否则 Azure SQL DB 是一个不错的起点。

对于 PDF 存储,您也可以使用 Azure SQL,但从成本和性能的角度来看,这并不理想。 Azure Blob 存储非常便宜,非常适合存储和提供文件和二进制数据。您可以将 PDF 元数据(指向用户的链接、指向特定 Blob 的 URI 指针等)存储在 SQL DB 中,并将实际的 PDF 内容保留在更便宜的 Blob 存储中。您必须编写一些代码来保持 PDF 元数据和内容同步,但这对于云中的此类多语言持久性解决方案来说是典型的。

http://martinfowler.com/bliki/PolyglotPersistence.html

因此,具体回答您的问题:

  • 考虑为用户帐户和其他离散元数据使用单独的存储,并为 PDF 内容使用另一个存储

  • 考虑 PDF 内容的 Blob 存储(DocumentDB 是可能的,但 Blob 存储仍然便宜得多)

  • blob 存储对于 PDF 的临时或永久存储都可以正常工作

祝你好运!

关于mysql - 在 Azure 中托管 Web 应用程序时,尝试了解哪个数据库选项适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com