问题标签 [object-relational-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
455 浏览

sql - 对象关系数据库设计与嵌套表重叠子类型

我有一个超类型 Person 和两个(或更多)子类型 Group1 和 Group2。

Person 可以同时是 Group1 和 Group2,即子类型可以重叠。

超类型包含一个嵌套表“成员资格”。

当我创建子类型表时,似乎我必须再次重复 NESTED TABLE 语句,否则我会收到错误消息:

SQL 错误:ORA-22913:必须为嵌套表列或属性指定表名

我有两个问题:

  • 我在两个子类型表 group1_table 和 group2_table 下嵌套同一个表“成员资格”的方式是否正确?
  • 当我在子类型表中填充数据时,是否可以在不复制子类型表中的公共值的情况下“引用”超类型表?

超型亚型ERD[er

0 投票
2 回答
1074 浏览

python - 将 SQLAlchemy ORM 与 sql 核心表达式中的对象连接起来?

我必须使用 SQLalchemy Core 表达式来获取对象,因为 ORM 不能执行“更新和返回”。(ORM 中的更新没有returning

什么时候

它报告UnmappedInstanceError: Class 'sqlalchemy.engine.result.RowProxy' is not mapped

如何将该RowProxy对象从 sql 表达式放入 ORM 的身份映射?

0 投票
1 回答
3292 浏览

sql - 从嵌套的引用表中选择查询

我有两个对象关系表:person_tableaccount_table,由对象personaccount. 一个帐户行有一个嵌套表,用于共享此帐户的所有人员,其类型为“customer_list”。

给定此人的 ID,我想选择特定人拥有的所有帐户。如何浏览帐户的所有嵌套表,查询是什么?我尝试了不成功的查询。

例如

谢谢

0 投票
0 回答
216 浏览

oracle - Oracle OR 数据库:为什么 ref() 函数获取对象而不是 OID?

我正在使用 Oracle (11g) 和 SQL Developer 工具 (v. 4.1.3)。我有一个对象关系数据库。

我这样做:

我得到:

但是,在列中,我应该得到的manager不是对象。(EMP_PERSON_TYP())OID

我猜可能是配置的问题,也许我应该以特定的方式配置SQL Developer,但我不知道。

提前致谢。

0 投票
1 回答
222 浏览

sql - Oracle OR - 如何保证嵌套表具有对超类型的所有子类型的引用

我正在设计一个对象关系模型数据库。我有一个名为“topico_t”的超类型和这个超类型的 4 个子类型,名为“anotacao_t”、“tarefa_t”、“memo_t”和“contacto_t”。请参阅此处的DDL 片段

所以,然后我用这个填充这个表“topicos”:

因此,我必须构建一个查询,甚至是一个 PL/SQL 块,它返回表“topicos”的所有行,其中至少包含嵌套表“referencias”中提到的这 4 个子类型中的每一个的一个实例对象多于。理想情况下,此查询将返回该行(在上面的INSERT中提到)。

最好的问候,并希望你有一个美好的劳动节!;)

0 投票
0 回答
47 浏览

plsql - Oracle 10g:在插入/更新之前使用类型构造函数验证数据

是否可以通过类型构造函数在插入/更新之前验证数据?我已经在表格中使用了类型化的对象。需要知道当我在同一设备上插入/更新数据时是否可能在应用程序上出现错误...

这是概念代码...

这里的最后一条语句插入一条记录。它实际上应该返回一个错误。需要澄清和指导以显示应用程序错误并在不插入记录的情况下拖拽。

提前致谢。

0 投票
0 回答
249 浏览

sql - Oracle 嵌套表引用

我有以下表结构:

Customer具有嵌套表Orders和嵌套表Positions作为Orders的属性。

Positions的一个属性是ArtNr。还有带有属性ArtNr的表格文章。并且这两个属性是相互关联的。

我的问题是:

  • 因为它们是对象表,所以我不能使用外键 -> 我必须使用对象引用(参考)
  • 但我不知道我必须在哪里定义参考(在文章客户中?)
  • 我对 ref 的 Oracle 语法有疑问
0 投票
0 回答
45 浏览

c# - 确保只有一个 ORM 模型实例绑定到数据库中的行的最佳方法是什么?

问题

我们有一个将分层数据存储在数据库中的应用程序。我们已经定义了一个代表一行数据的 POCO 对象。

问题是我们需要某些属性依赖于项目的子项,而其他属性依赖于它们的祖先。例如,如果一个((大)孙)孩子的状态不完整,那么它的所有父母都是不完整的。同样,如果父级的状态为禁用,则所有子级也应被隐式禁用。

在数据库方面,由于触发器,一切正常。但是,我们遇到的问题是将这些更改同步到任何可能受到影响的内存中 ORM 对象。

这就是为什么我们要考虑做这一切的原因,我们需要确保内存中只有一个模型实例用于数据库中的任何特定行。这就是整个问题的症结所在。

我们目前正在使用数据库中的触发器以及对内存中 ORM 对象的数据库 ID 上键入的对象的一个​​巨大的弱引用散列集进行此操作,但我们不确定这是正确的方法。

初始设计

我们的“新手”设计从加载数据库中的所有对象开始,这很快就会耗尽内存,更不用说加载可能永远不会真正显示在 UI 中的数据了,因为用户可能永远不会导航到它。

尝试 2

我们的下一个尝试扩展了前者,仅动态加载 UI 中实际显示所需的级别,这大大加快了加载速度,但现在不允许在没有多次调用数据库的情况下轮询层次结构的状态。

尝试 2B

与上面类似,但我们添加了持久的“隐式状态”字段,这些字段通过数据库中的触发器进行更新。这样,如果禁用了父级,则触发器会相应地更新所有子级。然后模型对象简单地用数据库中的最新值刷新自己。这具有将一些业务逻辑放在模型层和一些在数据库触发器中以及使每个操作都需要数据库写入和读取的缺点。

全动态

这一次我们试图让我们的模型“哑”,并从代码中完全删除我们的业务层,将该逻辑完全移动到数据库中。这样,业务规则只有单一所有权。另外,这种保证的坏数据一开始就不能插入到数据库中。但是,在这里我们也需要不断地轮询数据库以获取“当前”值,这意味着必须内置一些逻辑才能知道需要刷新哪些对象。

完全动态的元数据

与上面类似,但所有对数据库的写入调用都返回了一个更新令牌,该令牌告诉模型是否必须刷新任何加载的父级或子级。

我希望从 SO 社区获得一些关于如何解决这个问题的反馈。

0 投票
1 回答
2896 浏览

c# - 数据注释还是 Fluent API?支持各种 ORM 的最佳实践

我正在研究在我的应用程序的数据层上实现一个数据验证表单。我希望在我的数据模型中接受特定的字符串输入,但我很难知道如何最好地实现这一点。

我目前正在研究 Fluent API(目前正在测试 EF Core 风格)是否会促进此功能,或者我是否需要考虑将数据注释引入我的数据层模型以确保可以在所有对象关系建模服务上实现验证。

从在线阅读来看,Fluent API 是最佳的行动方案,因为它从数据层移除工作负载,并让数据访问层控制并指定有关如何建模数据的特定规则。

不利的一面是,我需要为其他 ORM(即:NPoco)重新实现它以满足该平台的规则。

关于这个问题的更多信息

我有几个具有外国文化名称和字符串的类,它们可以通过使用 ISO-639 和 ISO-3166 组合的语言文化字符串来识别。(zh-CN, zh-CN)

这由数据模型中的字符串表示。

在 EF Core 下,我使用 OnModelCreating 函数设置表。

我知道 .NET Core 能够下拉一组 CultureInfo,它使用我想要实现的本地化字符串系统,但我不打算让数据模型检查这一点,而是让数据访问层验证数据。

如何确保我的预期逻辑可以在系统中实现?我是否需要更改为数据注释以确保此逻辑?

0 投票
1 回答
136 浏览

python - 在 Python SQLAlchemy 中定义 ORM 关系

我有 2 个模型AnimalsSpecies. anAnimals只能与 1 相关Species,可以有多个Animals属于同一个Species

例如,bobby是一个Animals属于该对象的bear Species对象。

我们应该如何在模型中定义 ORM 关系Animals,以便我们可以使用它bobby.species来获取bear Species对象?

这种关系也称为一对一吗?