我的 C++ 应用程序需要具有关系特性的无模式数据库。
我已经在我的项目中使用了 PostgreSQL 和 Mysql。
我想将数据以关系方式存储在文档中,并且需要使用 SQL 进行 CRUD。
我的 C++ 应用程序需要具有关系特性的无模式数据库。
我已经在我的项目中使用了 PostgreSQL 和 Mysql。
我想将数据以关系方式存储在文档中,并且需要使用 SQL 进行 CRUD。
“关系”和“无模式”是相互排斥的。
现代 DBMS 支持多种数据模型。例如,SQL Server 支持关系、面向文档(XML 和 JSON)和图形(网络)数据模型。您可以在同一个数据库中组合使用不同的模型。一个典型的例子是,文档表包含与最重要的属性(包括键)相对应的几列,以及一个存储 XML 的列。
但是,关系数据模型默认结构良好,因此很难实现无模式的关系数据库。这可以通过仅使用一些“变体”数据类型的 Excel 工作表或表格来模拟,但这样的解决方案似乎很脆弱并且存在性能问题。
另一种方法是在关系数据库中使用 EAV 扩展。
您可以查看“数据库编程”一书,其中包含一些使用 Yes/NoSQL 的示例。
请看一下 AgensGraph 数据库。AgensGraph 是唯一真正支持关系型数据库和图型数据库(无模式)的多模型数据库。它还支持键值和文档模型。它也是基于C语言的。