是否有一种 ORDBMS 可以让我即时创建类?

问题描述

有点难以解释,我在找什么:

搜索存储对象的 DB(类似于 https://www.objectdb.com/),但其中的类不是由 Java 代码定义的,而是在 DB 本身中定义的 - 动态。

这样就可以了,例如创建一个可能带有休息调用的类:

{
 action: create_class,type: Car,properties: {
  color: String,producer: String,price: Integer,}
}

添加一个项目,如:

{
 action: create_entry,class: Car,id: 123456,{
  color: red,price: 20000,producter: Hypercar
 } 
}

在你说:“NOsql!”之前:这似乎是关系和查询的问题。例如。 “查找所有红色汽车”或“查找符合 XY 标准的生产商的汽车”

但是也许存在一个已经提供了很多功能数据库解决方案——sql 和 NOsql 的混合?

例如,产品 fibery 提供了一种为每只鼠标添加实体种类的方法。这是非常鼓舞人心的。 (Fibery 不是数据库,而是一种产品,可以满足我的需求)

感谢您的任何提示

解决方法

你可以看看https://www.prisma.io/ 它支持类似 sql 的数据库作为后端(Postgresql 等),并提供基于 REST 和 GraphQL 的查询语言。

与此相比,Prisma 的工作原理根本不同。使用 Prisma,您可以在声明性 Prisma 模式中定义模型,该模式作为数据库模式和编程语言中模型的唯一真实来源。在您的应用程序代码中,您可以使用 Prisma Client 以类型安全的方式在数据库中读取和写入数据,而无需管理复杂模型实例的开销。这使得查询数据的过程更加自然和可预测,因为 Prisma Client 总是返回纯 JavaScript 对象。

这里也是关系查询的一瞥https://www.prisma.io/docs/concepts/components/prisma-client/relation-queries

作为 Fibery 的开发人员,我应该说它没有像 Postgresql 或该领域的任何其他真正的数据库那样针对一般用途进行优化。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...