按每行多个电子邮件地址过滤

按电子邮件地址过滤的工作原理是:将已登录查看者的地址与数据源中包含有效电子邮件地址的字段进行比较。对于数据中的每一行,过滤器都会检查观看者的电子邮件地址是否与该行中的地址匹配。

请思考以下数据:

电子邮件地址 数据
alan@example.com abc
mary@example.com cde
alan@example.com efg
mary@example.com ghi

如果按电子邮件地址过滤这些数据,并且用户 alan@example.com 查看过滤后的报告,则该用户只会看到数据 abcefg。如果另一位用户 mary@example.com 查看同一报告,则会看到数据 cdeghi

如果观看者与数据之间存在一对一关系,则此方法可行。但是,如果您还希望用户 manager@example.com 看到这些数据,该怎么办?也就是说,您希望让许多人查看同一行数据(多对多关系)。

由于按电子邮件地址过滤时,每行只能使用一个地址,因此您无法在电子邮件字段中添加电子邮件地址列表。例如,在电子邮件字段中添加电子邮件地址列表(如下所示)是行不通的:

电子邮件地址 数据
alan@example.com、manager@example.com、vp@example.com、bigwig@customer.com abc

解决方案:使用数据混合

您可以将电子邮件地址表与数据合并,并使用任何公共字段作为联接键,以便在电子邮件地址与数据之间创建多对多关系。

水果摊示例

您管理一家农产品公司,并希望向销售代表展示他们在所服务的各个水果摊的销售情况。多个销售人员可以同时负责多个展台。如需过滤数据,以便销售人员仅看到其数据,您可以执行以下操作:

第 1 步:创建访问控制列表表

在此步骤中,您将创建一个访问控制列表 (ACL) 表,其中包含已获授权销售人员的电子邮件地址,以及一个数据字段(水果摊名称),该字段可用作联接键。

销售代表电子邮件地址 联接键
salesrep1@example.com 水果摊 A
salesrep2@example.com 水果摊 A
salesrep1@example.com 水果摊 B

salesrep2@example.com

水果摊 C

访问控制列表 (ACL) 表

请注意,用户 salesrep1@example.com 可以查看水果摊 A 和水果摊 B 的数据,而用户 salesrep2@example.com 可以查看水果摊 A 和水果摊 C 的数据。

第 2 步:创建数据表

数据表会跟踪每个代表在每个水果摊的销售情况。

水果摊 水果 销售
水果摊 A Apple 50
水果摊 A Banana 26
水果摊 A 橙色 20
水果摊 A Pear 93
水果摊 B Apple 98
水果摊 B Banana 86
水果摊 B 橙色 7
水果摊 B Pear 85
水果摊 C Apple 21
水果摊 C Banana 61
水果摊 C 橙色 3
水果摊 C Pear 78

数据表格

第 3 步:将电子邮件过滤器应用于 ACL 表

如需将电子邮件过滤条件应用于 ACL 表,请完成以下步骤:

  1. 修改 ACL 表的数据源
  2. 点击按电子邮件地址过滤
  3. 为过滤条件选择销售代表电子邮件地址字段。

第 4 步:将 ACL 表与数据表混合

最后,将数据表与 ACL 表混合。由于我们希望将销售代表电子邮件地址有效地添加为数据表中的列,因此我们将从数据表开始,然后左联接 ACL 表。

如果不应用电子邮件过滤条件,您将看到这两位销售代表的所有记录。不过,应用电子邮件过滤条件后,将 ACL 表与销售数据表混合会根据查看报告的销售人员过滤数据。以下是每位代表在查看报告时会看到的内容:

销售代表 1 会看到以下内容

数据 水果 销售
水果摊 A Apple 50
水果摊 A 香蕉黄 26
水果摊 A 橙色 20
水果摊 A 93
水果摊 B Apple 98
水果摊 B 香蕉黄 86
水果摊 B 橙色 7
水果摊 B 85

销售代表 2 会看到以下内容

数据 水果 销售
水果摊 A 香蕉黄 26
水果摊 A 橙色 20
水果摊 A Apple 50
水果摊 A 93
水果摊 C 香蕉黄 61
水果摊 C 橙色 3
水果摊 C Apple 21
水果摊 C 78