Filemaker 门户:每条记录有多个键

Filemaker portal: multiple keys per record


(编辑)
有一个 table 与自我关系:项目/项目相关。 记录 B 需要有 2 个键:蓝色和红色(当然,在真实的 table 中颜色将是 id 的)
我不希望记录 X 上的所有红色记录都显示在门户中。
我该怎么做?

几个选项:

首先,如果您打算为主键使用顺序整数(在大多数情况下不推荐),您的字段应该是数字字段,而不是文本字段。根据您设置自连接的方式,更改此项可能会立即解决您的问题。

不过。尽管对 FileMaker 关系使用多键是有效的,但通常最好使用约定的多对多连接。为此,您需要设置一个单独的联接 table,其中 "parent" 记录(您正在查看的记录)作为 "left" 辅助键,"child" 记录 (您希望在门户中显示的记录)作为 "right" 辅助键,然后您将主要 table 事件加入您的关系图中的新次要 TO 通过此新连接连接 table.通过这样做,您将获得一个坚如磐石的机制来执行您想要的操作,并且能够在该联接 table 中针对特定 "parent" 的每个 "child" 实例的特定字段].强烈推荐。

另一个注意事项:注意到您新添加的有关门户过滤器的文本:

为此,您需要设置一个笛卡尔连接(在关系图中使用 "X" 运算符,创建一个 "sees" 所有其他记录的关系(如果是自连接,也是当前记录本身。然后应用一个门户过滤器,它将针对关系中的每条记录进行评估:您创建一个表达式,当针对给定的相关记录评估为真时,记录显示;否则,记录已隐藏。

这是一种诱人的方法,起初,您可能会喜欢它。但是,它可能会随着时间的推移而失败。原因是随着您添加更多记录或在 LAN 和 WAN 环境中传递数据,这种技术变得越来越慢 - 通常太慢而无法使用。此外,过滤后的门户仍然 "sees" 所有未过滤的记录,因此这种方法会阻止您对这些相关记录执行其他操作,例如获取第 1、2 个,获取总计数其中,等等

你的解释很混乱。我会根据我对您的问题的了解尽力提供帮助

你有一个table"items"是自相关的;另一个 Table 事件被命名为 "items_related"

您的关系不是一对多。如果你有一对多,我建议你有一个名为 foreingKey_Father 的字段并以这种方式建立关系:"items::foreignKey_Father = items_related::primaryKey"

如果你的关系比较复杂,解决这个问题的正确方法是加入 table。它可以命名为 "JT_itemToItemRelated",包含两个字段 "foreignKey_item" 和 "foreignKey_itemRelated"。这样,门户将根据加入的记录过滤相关项目 table.

如果您希望关系基于文本字段中的多个相关 ID,您可以(但不应该)这样做。您所要做的就是使 items::variousPrimaryKeys = items_related::primaryKey。这不是更好的做法。

如果你能提供更多关于你想要完成的事情的信息,它会更快。

为了实现图片中显示的结构,您的 items table 应该如下所示:

或者:

ItemID  ItemName    ChildItemsIDs
A       Alpha
B       Bravo
C       Charlie
D       Delta
X       Xray        A¶B
Y       Yankee      B¶C¶D

符号代表回车return)

关系应定义为:

items::ChildItemsIDs = items_related::ItemID

带有 items_related: 的门户,布局为 items

或:

ItemID  ItemName    ParentItemsIDs
A       Alpha       X
B       Bravo       X¶Y
C       Charlie     Y
D       Delta       Y
X       Xray        
Y       Yankee

关系定义为:

items::ItemID = items_related::ParentItemsIDs

这两个选项之间的选择取决于您想要 select children for a parent 还是 parents for a child.


:
您描述的是 many-to-manyitems 之间的关系。 "proper" 解决方案是使用 join table,其中每个链接的项目对都是一个单独的记录。

Filemaker 允许您通过使用如上所示的 multi-valued key 实现 many-to-many 关系而无需连接 table。然而,这种便利也有缺点:您无法记录任何特定于联接的属性,并且生成报告更加困难(门户不能很好地跨分页打印)。