Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OracleApex:如何使用n:m关系连接两个表_Oracle_Many To Many_Relationship_Oracle Apex - Fatal编程技术网

OracleApex:如何使用n:m关系连接两个表

OracleApex:如何使用n:m关系连接两个表,oracle,many-to-many,relationship,oracle-apex,Oracle,Many To Many,Relationship,Oracle Apex,我有两个表:Server和Host。他们应具有m:n关系。 我如何连接它们? 我是否必须使用这两个表的主密钥设置第三个表?或者APEX是自动做到这一点的吗 谢谢你的帮助 因为这是m:n关系: 我是否必须使用这两个表的PrimaryKey设置第三个表服务器\主机 在我看来,是的——这将是一个好主意,而且很容易维护 或者APEX会自动地做到这一点吗 不,Apex不会自动这么做。它不能,它是数据模型的一部分。Apex只是一个访问数据的工具,它不会在数据之间建立任何关系。快速回答是“是”和“否” 详细

我有两个表:ServerHost。他们应具有m:n关系。 我如何连接它们? 我是否必须使用这两个表的主密钥设置第三个表?或者APEX是自动做到这一点的吗


谢谢你的帮助

因为这是m:n关系:

我是否必须使用这两个表的PrimaryKey设置第三个表服务器\主机

在我看来,是的——这将是一个好主意,而且很容易维护


或者APEX会自动地做到这一点吗

不,Apex不会自动这么做。它不能,它是数据模型的一部分。Apex只是一个访问数据的工具,它不会在数据之间建立任何关系。

快速回答是“是”和“否”

详细回答: 如果它真的是M:M,那么它在关系数据库中是必需的,该关系数据库遵循正常形式,并且这两个表必须将来自其他两个表的PK作为FKs,尽管它们不一定是交集表PK的一部分,并且可以说/取决于在查询中的使用方式,它们不应该是交集表PK的一部分

考虑使用SQLDeveloper(免费)对三个表进行建模并创建DDL

你确定只有一个交集表吗?好的数据库设计决定了你要考虑关系属性。例如,Customer to Catalog Item是M:M,但是添加订单表并不能完全解析M:M,因为订单和目录项之间存在M:M,所以它们之间需要另一个交集表Line Item


请考虑这一点,并指定服务器和主机之间关系的性质。例如我不知道为什么在您的例子中,服务器和主机是m:m,而您没有指定被建模的关系的性质以及表和关系的属性。是否将服务器分配给主机?那么主机可以作为1:M服务器的主机?M:M怎么样?或者这是一段时间的关系还是一个特定的时间点?这也会影响模型。

您是说表彼此相关,但模式中还没有关系吗?它们有什么关系?这是一种多对多还是多对一的关系?