---
schema_version: "1"
id: 0c046824c9ba7b7766496e5be539847d6af8e1341fc20917018a4c37aa224951
title: 不要害怕更深层次的关系
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/public/desktop/datasource_dont_be_scared_deeper.md
canonical_url: https://help.tableau.com/current/public/desktop/zh-cn/datasource_dont_be_scared_deeper.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 3602075718823702a1052a6d3485f07c4f98b2259f849af6e311caf101b14af2
description: Understand deeper relationship concepts like field domains and the meaning of nulls.
---
[跳转到主要内容](#main-content)

# 不要害怕更深层次的关系

由于关系的性质，了解字段来自何处、字段的域以及 null 表示的内容比以往更重要。请记住，在无法访问数据源页面或“数据”窗格的情况下查看可视化项的任何人都将依赖于作者提供的标题或其他信息来正确解释可视化项。

**注意：**如果您还不太适应使用关系的数据源背后的原理，则在深入探讨本主题之前阅读[不要害怕关系](https://help.tableau.com/current/public/desktop/zh-cn/datasource_dont_be_scared.htm)可能会有所帮助。

## 为什么不是所有的日期字段都相等？

请务必记住，仅仅因为两个字段名称包含“Date”一词并不意味着这些字段的内容是相同的。让我们来看看一个与年份级别相关联的例子。也就是说，我们不关心月和日的值，我们只关心字段覆盖哪些年份。

数据类型为日期的 [Bookshop 数据集](https://help.tableau.com/current/public/desktop/zh-cn/bookshop_data.htm)中有多个字段。

- Birthday（生日）
- Publication Date（出版日期）
- Sales Date（销售日期）
- “Year Won”（获奖年份）和“Year Established”（设立年份）也包含日期信息，尽管它们是数值字段。
    - NB：如果数据窗格中的图标为绿色，则此字段为连续字段。右键单击“数据”窗格中的字段名称，并选择[“转换为离散”](https://help.tableau.com/current/pro/desktop/zh-cn/datafields_typesandroles_convertdisctocont.htm)。标应变成蓝色。如有必要，请为“Year Won”（获奖年份）”和“Year Established”（设立年份）都执行此操作。

但域（每个字段中的值）各不相同。将每个字段依次放到行功能区，查看左下角的标记数，在显示下一个字段之前移除每个字段。

- YEAR(Birthday) 有 27 个标记，这意味着域包含 27 个不同的年份。
- YEAR(\[Publication Date\]) 有 15 个标记，因此其域包含 15 年份。
- “Year Won”（获奖年份）有 11 个标记
- “Year Established”（设立年份）有 4 个标记
- YEAR(\[Sales Date\]) 有一个标记

请务必记住域中的这种差异。如果我们将 YEAR(\[Publication Date\]) 的“Edition”（版本）和“Award”（奖项）表与“Year Won”（获奖年份）关联起来，我们最终可以进行使用内部联接的分析，因此将之缩减到获奖年份，从而将所有图书从无奖项的年份中删除。（请注意，这与筛选出没有奖项的图书不是一回事。与获奖图书同年出版的非获奖图书将被保留。无奖项年份中的所有图书将被完全删除。联接中的筛选操作在年份（而非图书）级别进行。）

**示例：出版日期和生日**

如果将“Publication Date”（出版日期）放入“列”，并将“Birthday”（生日）放入行，我们将得到一个 Abcs 表。您可以自行[下载工作簿](https://help.tableau.com/samples/en-us/bookshop/dontbescared_award_edition.twbx)并浏览此表。 （需要 Tableau Desktop 2020.2 或更高版本。）

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_tablewithnulls.png)

Abc 只是一个占位符，因为除了年份没有其他数据。Tableau 没有可用来做标记的值，但 Abc 显示了标记的去向。

请注意，此表中有很多空白。出版年份 2180 和生日 2133 没有占位符。这意味着出生于 2133 年的作者在 2180 年没有出版图书。

的确。但是我们为什么要在乎呢？

想象一下，随着时间的推移，您想要做一些分析。精装本的销量是否随着时间的推移而增加？您可能会将图形想象成一个时间线，该时间线将“Format”（书型）筛选为仅“Hardcover”（精装本），并将“Sales(Count)”放在“行”上，将日期放在“列”上。但是哪个日期字段呢？Publication Date（发布日期）？Birthday（生日）？Sales Date（销售日期）？这些字段的名称都很好，很明显，如果我们有关于销售的问题，我们应该使用“Sales Date”（销售日期）。不过，并非所有数据集都有清晰的名称。如果字段类似于“Date1”和“Date3”，则很难区分。尤其是如果分析问题没有被清楚地考虑清楚，则更是如此。

**一个字段来自哪个表以及该字段所代表的域对分析有着至关重要的影响。**

通过更改日期字段，我们可以完全更改分析。考虑以下两个可视化项：

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_vizexample0.png)

第一个可视化项可以解释为“每年出生的作者写了多少本书？”它回答像“年龄较大的作者是否写的书更多？”（否） 或 “哪一年出生的作者最高产？”（2155 年）这样的问题。

第二个可视化项可以解释为“每年出版了多少本图书？”它回答像“哪一年出版的图书最多？”（2188 年） 或“一段时间内的图书出版是否稳定？”（否）这样的问题。

为使用生日的可视化项表达这个问题是很尴尬的，因为这是一个令人尴尬的概念组合。但是 Tableau 不会评判，它会让您提出任何您喜欢的问题 -- 不管您是不是有意的。这是一个至关重要的要点。如果您在应该使用“Date1”时将“Date3”带出，Tableau 将为您提供一个可视化项。但并非所有日期字段都有相同的含义，这取决于作者是否知道使用哪个字段来进行正确的分析。

有关字段来自哪个表的重要性的详细信息，请查看 [此博客文章](https://www.tableau.com/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)。

## 缺少数据意味着什么？

零和 null 是有区别的。

**零**表示我们测量了，但没有东西。我们知道值，它是零。如果我有零张超速罚单，我可能没有超速太多。

- NB：0 和 1 通常可与 True/False 或其他二项值（例如是/否或通过/失败）互换使用。在这种情况下，零被用作标签，而不是数值。

**Null** 意味着我们不知道：我们没有测量或我们没有记录数据。如果我的驾驶记录只是超速罚单为空白， 我们并不知道我超速与否。

Null 可以表示缺失的数据或不存在的数据。

- 对于我的驾驶记录，如果超速罚单值为 null，可以想象我可能有一张没有记录的超速罚单。我们应该假设缺少数据。
- 不存在的数据可以记录为 N/A，但通常不会记录，因为我们不需要跟踪不可能的事情。我坐公交车时收到了多少张超速罚单？该数据可能不会存在于数据集中。在“交通方式”和“超速罚单”的矩阵中，有些组合根本就没有意义。我们可以假设数据不存在。

### 当 null 有意义时

需要了解数据才能识别 null 是否真的未知（缺乏超速罚单数量的信息），或者是否表示不存在的数据（缺少作为公共汽车乘客的超速罚单的信息）。数据是否足够可信，以至于缺少信息可以被视为不存在的数据，而不是缺失的数据？应用主题专业知识时，null 可能有意义。

再看看 Abcs 的表，我们可以分析没有占位符的空间。我们假设此数据是可靠的，null 表示数据不存在，而不是不完整。

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_tablewithnulls.png)

缺少占位符意味着作者是该年出生的（因此行存在），并且该年出版了一本书（因此该列存在），但出版的书不是由该年出生的作者编写的（因此单元格为空）。我们可以有意义地为该空白空间分配一个标签：Nothing Published（未出版任何书）。我们甚至可以分析这些 null，例如，对于数据中的日期，每个作者有多少年没有出版过一本书？

**注意：**生日域中也存在空白。没有作者出生在 2131 年或 2132 年，所以年份从 2130 年进入到 2133 年（2131 年和 2132 年的行不存在）。这些缺失的年份可以解释为“这个数据集中没有一本书的作者是那些年出生的”。但是，如上所述，在谈到日期字段域时，域中缺少值是构建关系或选择用于可视化项中的标题或轴的字段时需要考虑的重要信息。

有关在关系中使用 null 的信息，请查看[此博客文章](https://www.tableau.com/about/blog/2020/5/relationships-part-2-tips-and-tricks)。

## 动手练习

为每个可视化项写一个标题。您能用简单的语言描述正在发生的事情吗？[下载工作簿](https://help.tableau.com/samples/en-us/bookshop/dontbescared_award_edition.twbx)以浏览实时可视化项。（此工作簿使用稍微调整的 [Bookshop 数据集](https://help.tableau.com/current/public/desktop/zh-cn/bookshop_data.htm)版本，并且只使用两个表。 日期字段已调整，因此它们可以用作相关字段。）

理解可视化项的矩阵： 

- 条形图显示每年的版本数（紫色）和奖项数（绿色）。
- 每列都有不同的轴日期字段。左侧列是“Edition”（版本）表中的“Publication Year”（出版年份），中间的列是“Award”（奖项）表中的“Year Won”（获奖年份），右侧列是使用出版日期的计算字段，但如果该字段为 null，则使用获奖年份（此计算用于确保两个域都得到充分表示）。
- 对于“Award”（奖项）和“Edition”（版本）表的组合方式，每一行都是不同的关系。最上面一行在“Book ID”（图书 ID）上关联表，中间一行在“Year”（年份）上关联表，最下面一行在“Book Id”（图书 ID）和“Year”（年份）上关联表。
- 借助 2183 年的条形较厚，以便于比较。在下面的解决方案中，这一年的值将被详细查看。
- 请注意，着色的两个可视化项具有相同的值。

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_matrix.png)

### 如果您遇到问题

逐步浏览可视化项的每个部分。查看数据源结构、轴和标题，以及用于标记的字段（以及它们来自哪些表）。想想 null 以及它们可能存在的原因。查看某个特定标记或两个标记的数据，看看它包含哪些记录。

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_vizexample1.png)

- 数据源是在“Book ID”（图书 Id）关联到“Editions”（版本）的“Awards”（奖项）。
- 日期轴为“Publication Year”（出版年份）
- 值为“Count of Awards”（奖项计数）和“Count of Editions”（版本计数）。

尝试在可视化项中选取一个标记并定义它。对于 2183 年，可视化项显示有 7 个版本和 3 个奖项。使用[查看基础数据](https://help.tableau.com/current/public/desktop/zh-cn/inspectdata_viewdata.htm)来调查每个标记中表示的记录。

Editions（版本）

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_domaineditions.png)

Awards（奖项）

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_domainawards.png)

总而言之，这可以解释为“退还 2183年 出版的七本书，然后对于那些书，列出他们获得的任何奖项，_无论他们是在什么时候获奖的_”。 TM925 最初于 2179 年出版，精装本在该年获得了两个奖项。2183 年，这本书出版了另一个版本，可能是平装版。“Count of Award”（奖项计算）的值与图书有关，而不是与年份挂钩。

因此，可视化项总体可解释为“每年出版的版本数量，以及当年出版的图书获得的奖项数量”或“每年出版的版本数量以及这些图书获得的奖项数量”。

动手练习的解决方案

2183 年（条形较厚）是要重点解释的一年。有关版本的信息为紫色，有关奖项的信息为绿色。描述中还标出了 2187 年，因为这一年没有获奖，但出版了图书。因此，它很好地说明了轴使用日期字段的强大功能。这种细微差别在描述中以蓝色处理。用于建立关系的字段的重要性以粉红色标出。

![](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dontbescared_optionsmatrix.png)

提供此视觉效果是为了方便您，但更好的体验可能是[下载工作簿](https://help.tableau.com/samples/en-us/bookshop/dontbescared_award_edition.twbx)并在 Tableau Desktop 2020.2 或更高版本中打开它，这样您就可以利用工具提示和查看数据等交互性。如果您希望更仔细地查看工作表，可以右键单击底部的任一仪表板选项卡，然后选择“取消隐藏所有工作表”。这将使所有单独的可视化项可用，并且从每个工作表中您可以看到“数据”窗格和制作环境，包括哪些字段位于哪些功能区上。请注意，为了实现三种不同的关系（上面矩阵的行），有三个不同的数据源。

## 相关资源

感觉有点不知所措， 想退回去一步吗？请尝试[不要害怕关系](https://help.tableau.com/current/public/desktop/zh-cn/datasource_dont_be_scared.htm)。

准备好处理关系计算了吗？请查看[不要害怕关系中的计算](https://help.tableau.com/current/public/desktop/zh-cn/datasource_dont_be_scared_calcs.htm)。

有关直接来自产品管理团队的关系的技术基础的详细信息，请查看 Tableau 博客上有关关系的系列文章。

- [关系，第 1 部分：在 Tableau 中引入新的数据建模](https://www.tableau.com/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model)
- [关系，第 2 部分：提示和技巧](https://www.tableau.com/about/blog/2020/5/relationships-part-2-tips-and-tricks)
- [关系，第 3 部分：跨多个相关表提出问题](https://www.tableau.com/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)

另请参见 [Action Analytics](https://action-analytics.com/library/) 中有关关系的视频播客，例如[为什么 Tableau 发明了关系？](https://action-analytics.com/ep-1-why-did-tableau-invent-relationships/)单击 [Library（库）](https://action-analytics.com/library/)中的“Video Podcast”（视频播客）以查看更多信息。