选择正确的数据库架构/技术

问题描述 投票:0回答:1

我需要建立一个数据库模型来管理合同的生命周期。 鉴于我构建的以下数据模型(为了简化表示,它已经是关系型的),我需要决定是选择 SQL 还是 NOSQL 数据库。

除了数据建模之外,我还添加了以下约束和功能:

  • ExtractionEntities 表包含使用 NER 提取的实体(例如人物、地点等)
  • Contract 表中的“text”字段包含所有文本,因此相当大
  • 该数据库将为 Apache Superset 仪表板提供服务。所以例如它将需要显示具有多个活跃合约的参与者、合约的地理分布、根据字段的特定值过滤记录等。
  • 我们不会有很多数据(<5k for sure)

鉴于前提,我会倾向于关系数据库:

  • 实体之间的关系对我来说看起来完全是关系数据库
  • 它支持引用完整性
  • 需要管理合约生命周期的应用程序应该支持ACID事务,这是由db sql保证的
  • 仪表板可能需要相当复杂的查询,这是关系数据库的另一个优点,不是吗?
  • 逻辑模式不应该随着时间的推移而改变(这可能是 NOSQL 的优点)。也许某些记录可能并不总是包含所有字段

这显然是有最爱的。我想了解我是否做出了错误的假设,或者你们中的任何人能让我从另一个角度看待情况,以倾向于不同的解决方案。

谢谢你

enter image description here

sql mongodb database-design nosql
1个回答
0
投票

根据您的要求,我可以建议您采用 CQRS 设计模式方法,您可以利用 SQL 和 NoSQL 数据库的优点,但这种方法的唯一缺点是 SQL 和 NoSQL 数据库之间的一致性,您必须实现一致性机制太(最终或强烈)。

© www.soinside.com 2019 - 2024. All rights reserved.