Asp.net 基于.NET文档的数据库(ECM)的NoSQL DB
我正在编写一个基本的多租户SaaS ECM解决方案。每个客户端都有自己的数据库/数据存储实例,但.Net应用程序是单个实例。文档几乎是只读的(即TIFF或PDF的图像存档) 到目前为止,我一直在使用MSSQL,但后来我开始认为这在NoSQL数据库中可能是可行的(例如MongoDB、CouchDB)。基本前提是它存储文档,每个文档都有自己的特定索引。每个租户可以有多种文档类型 e、 g.一个租户可能有一个发票类型,该类型具有客户ID、发票编号和发票日期。另一个租户可能有一个申请表,其中包含成员编号、申请编号、成员名称和申请日期 到目前为止,我使用了Sharepoint(以前使用过?)使用的旧方法,创建了一个文档表,其中包含int_field_1、int_field_2、date_field_1、date_field_2等。然后,我得到了一个“映射”表,其中存储了特定于客户的索引名和将映射到的数据库字段。由于文档量大,我避免了数据库中的键值对模型 通过这种方式,我们可以在一个表中支持多种文档类型,并从中获得相当高的性能,并允许自定义文档类型搜索(即,用户选择一种文档类型,然后显示一个搜索字段列表) 然而,NoSQL DB可能会使这变得简单得多,因为我不需要担心文档的非规范化。然而,我只是担心文档周围的其余数据。我们针对文档存储“操作历史记录”。这将跟踪视图、是否有人从系统内通过电子邮件发送文档以及其他“未来”功能(例如传真) 我们可以控制文档加载过程,因此我们可以按照在文档存储中获取数据所需的方式操作数据(例如,分配唯一ID)。用户不会在他们自己的文档中添加内容,因此我们不需要担心ACID遵从性,因为文档是相对静态的 所以,我想我的问题是:Asp.net 基于.NET文档的数据库(ECM)的NoSQL DB,asp.net,mongodb,database-design,couchdb,nosql,Asp.net,Mongodb,Database Design,Couchdb,Nosql,我正在编写一个基本的多租户SaaS ECM解决方案。每个客户端都有自己的数据库/数据存储实例,但.Net应用程序是单个实例。文档几乎是只读的(即TIFF或PDF的图像存档) 到目前为止,我一直在使用MSSQL,但后来我开始认为这在NoSQL数据库中可能是可行的(例如MongoDB、CouchDB)。基本前提是它存储文档,每个文档都有自己的特定索引。每个租户可以有多种文档类型 e、 g.一个租户可能有一个发票类型,该类型具有客户ID、发票编号和发票日期。另一个租户可能有一个申请表,其中包含成员编号
- NoSQL DB适合吗
- MongoDB是Asp.Net的最佳选择吗(我看过Raven和Velocity,但它们还是测试版)
- 我可以为每个文档存储一个键,然后使用该键将操作历史记录存储在MSSQL数据库中吗?我不需要进行连接,如果一个人对文档单击“查看历史记录”,就可以了
- 两者之间的性能比较如何(NoSQL DB与非规范化的“文档”表)
几乎每个人都告诉我,一旦开始在数据库中创建动态生成的字段,就应该转到NoSQL数据库。。另外,请注意,您不必事事使用NoSQL,您可以始终使用混合解决方案。他们混合解决方案是我的计划。我只是对人们对性能、维护以及如何将混合解决方案链接在一起的想法感兴趣(例如,在加载文档时分配一个任意文档ID字段,然后在SQL表中使用这个ID字段?或者我是否应该依赖NOSQL生成的键。我不理解这些要求。你对它的意思是什么“基本前提是它存储文档,每个文档都有自己的特定索引”?我们谈论的是自由文本索引还是元数据索引?或者你说的“索引”是指“元数据”?抱歉没有那么清楚。这是元数据(例如,发票文档将有一个发票号元数据)。用户搜索的是这些元数据,它们在不同的客户端之间变化。例如,一个客户端可能具有发票文档类型,而另一个客户端将具有应用程序表单文档类型。您可以使用MongoDB gridfs存储文件,也可以添加元数据。由您定义哪种元数据。我不确定是否您可以在该元数据上创建索引。我想您可以,但我从未尝试过。请看,我将尝试。