Oracle Apex 20 多对多关系 - 添加记录

Posted

技术标签:

【中文标题】Oracle Apex 20 多对多关系 - 添加记录【英文标题】:Oracle Apex 20 Many to Many Relationship - Adding records 【发布时间】:2021-06-22 18:51:20 【问题描述】:

我是 APEX 的初学者,我需要帮助才能在 apex 中制作多对多模型。在 ACCESS 中看起来很简单的事情已经让我头疼了好几个星期。 基本上我要做的是在我从我们的仓库加急货物时生成记录(我们仓库的每次远征都可以有一定数量的多个物品) 我有以下表格:

EXPEDITION_RECIEPT:

create table EXPEDITION_RECIEPT (
    id                             number, pk,
    info                           varchar2(4000 char)
)
;

MASTER_ITEMS:

create table MASTER_ITEMS (
    id                             number, pk,
    description                    varchar2(4000 char)
)
;

MASTER_ITEMS_EXPEDITION_RECIEPT:

create table MASTER_ITEMS_EXPEDITION_RECIEPT (
    id                             number, pk,
    EXPEDITION_RECIEPT_ID          FK,
    MASTER_ITEM_ID                 FK,
    QTY                            NUM
)
;

我查看了主从页面,但据我了解,这主要适用于一对多关系。我还没有找到让我的模型与 Master-Detail 一起工作的方法。我的直觉告诉我应该使用集合。我已经设法找到一种方法来用集合填充我的表,但问题是,一旦我使用 colletcions 创建记录并将其添加到我的 MASTER_ITEMS_EXPEDITION_RECIEPT 表中,我就无法再选择再次打开它并对其进行更改。

有人可以就什么是正确的方法给我任何建议,并引导我举一些例子。我想大多数面向业务的应用程序都以某种方式实现了这一点。

感谢您的任何建议。

雅库布

【问题讨论】:

【参考方案1】:

对不起,但是 - 这种多对多关系如何?一张远征收据可以包含一件或多件物品。如果是这样,那就是一对多。

您发布的表格在我看来还不错。

主从页面会有

expedition_receipt作为主人和 交互式网格(基于master_items_expedition_receipt 表)作为细节 expedition_receipt_id 列将从主区域继承其值 您可以从 LoV(值列表)(选择列表或弹出 LoV)中选择 master_item_id

【讨论】:

嗯,我的理解是,因为一个探险收据可以有许多 master_items,但任何 master_item 也可以在许多探险收据上——这意味着多对多的关系。我尝试根据您的建议使用向导实现主-详细信息页面,但没有成功。向导不会让我选择 master_items_expedition_receipt。最后我手动实现了你的步骤(不是使用向导和它的作品。)

以上是关于Oracle Apex 20 多对多关系 - 添加记录的主要内容,如果未能解决你的问题,请参考以下文章

Oracle-Apex 分拣穿梭车

hibernate 多对多关系映射

在对象关系数据库(Oracle)中映射多对多关系

多对多关系中的 Oracle 用户

“多对多”关系的同义词(关系数据库)

Symfony 固定装置和多对多关系(学说)