database - 用于应用程序的关系或 NoSQL 数据库
问题描述
我将处理应管理公司内部文档的应用程序。它应该是这样工作的:用户可以上传带有必填字段的文档,例如:描述、“读者”何时可以访问文档、应该批准文档的人群、成功批准后应该阅读文档的人群.. . 然后是文档的历史记录,每个用户做出的决定(聚合 x 不同意),用户/组/文档/角色等的一些基本管理......这个应用程序应该适用于公司(并且应该在本地网络上运行)。
- 我应该将关系数据库与 ORM 或 NoSQL 数据库一起使用吗?为什么?与上述应用程序描述相关的关系 db 或 nosql 有什么好处。
谢谢
解决方案
如果你有一个严格定义的模式(似乎是这样)和可预测的流量(这在公司环境中也很可能)并且想要经过多年测试和完善的 ACID 事务和数据恢复保证(你肯定会这样做)那么 RDBMS 是您的选择。在应用程序端使用什么,ORM,普通 JDBC 或其他什么都没有关系。
一个棘手的问题可能是文档存储,但是,只要文档不是很大,关系数据库(例如 PostgreSQL)就可以很好地完成这项工作。
这假设您不期望每秒有数十万个请求,因此不需要任何分片。即使您确实期望这样的负载,RDBMS 也可能没问题。
推荐阅读
- python - 如何放置另一列的值,如果 Pandas Python 中的单元格值为 -1
- python - python3 的 pipenv,只是创建 python3 shell,即使参数 --two 被传递。.我们需要为两个python安装pipenv吗?
- pandas - 使用 Python 中的 interp1D 函数对熊猫数据框列进行线性一维插值
- azure-devops - Azure DevOps 上的 build.complete webhook 有效负载中没有丢弃信息
- javascript - 请解释一旦满足 if 语句,参数 y 是如何增加的
- jquery - 将 json 对象发送到 jsonresult 控制器 asp.net mvc
- javascript - 循环确定数字的数字是否满足条件(Javascript)
- hyperledger-fabric - 自 V1.1 以来,Hyperledger Fabric 的性能有所提高
- excel - 从 xslx golang 中检索 CellRange
- docker - Docker 容器在 `docker start` 上立即退出