Filemaker中的双向自联接关系可能吗?

时间:2015-09-23 15:59:41

标签: many-to-many filemaker self-join bidirectional

我有一张交易表。对于任何给定的记录,我希望能够包含一个显示所有相关交易的门户网站。由于相关记录与父记录在同一个表中,因此我创建了第二个表事件(TO)。我已将这两个TO与一个连接表链接起来,我在其中输入两个TO的外键,以指示哪些记录与哪些其他记录相关。

在给定事务的布局上,我添加了一个门户,显示第二个表事件中的相关记录。到目前为止,非常好。

因此,假设在联接表中我说交易100链接到交易105和110.在交易100的门户中,我可以看到记录105和110。 110。

但是,我还希望在事务105的门户网站中看到事务100,但无法弄清楚如何执行此操作,而无需手动输入相同的关系,但反过来。

NB。我正在使用Filemaker Pro 12。

2 个答案:

答案 0 :(得分:0)

您需要为中间表中的每个关系创建两条记录才能执行此操作。

例如,您有TO_1TO_2以及中间表。中间表有两个字段id_1id_2。在TO_1TO_2之间创建关系时,请在中间表中创建两条记录。一条记录将id TO_1存储在id_1TO_2 id_2。第二条记录将id TO_1 id_2存储在TO_2id_1 SqlCommand cmd1 = new SqlCommand(query, sc); using (SqlDataReader sdr = cmd1.ExecuteReader()) { while (sdr.Read()) { for (int i = 0; i < sdr.FieldCount; i++) { label23.text += sdr[i].ToString(); } } } sc.Close(); 。{/ p>

答案 1 :(得分:0)

听起来您希望所有外键都出现在您使用多键的单个字段中。在您的示例中,多键将如下所示:

100
105
110

如果您不想在相关记录的门户中显示当前记录,可以省略它通过添加如下所示的谓词来定义要排除自身的关系:

fk = fk AND pk≠pk

那会有用吗?