理解图表
本页解释了如何解释在关系迁移器中创建的图表。每个图表由两个视图组成,一个用于您的关系数据库,另一个用于您的 MongoDB 数据库。视图显示了数据库中实体之间的关系。
关系视图
在关系视图中,每个框代表您关系型数据库中的一个表。框标题指示表名。
每个框列出对应表中的列。对于每一列,框指示列名和数据类型。
某些列有图标以指示其在表中的角色。
- 一个键图标表示表的键。 
- 一个链接图标表示外键。 
MongoDB 视图
在 MongoDB 视图中,每个框代表您 MongoDB 数据库中的一个集合。框标题指示集合名。
每个框列出对应集合中的字段。对于每个字段,框指示字段名和数据类型。
如果一个集合包含嵌套文档或数组,这些字段将显示在同一集合中的行内。
某些字段有图标以指示其在表中的角色。
- 一个键图标表示集合的 - _id字段。当您使用- wrapped键处理策略时,- _id字段包含子字段。在这种情况下,框中包含多个键图标,这些图标适用于单个字段。
- 一个链接图标表示该字段映射到外键中使用的关联列。 
选择视图模式
关系迁移器提供不同的图视图模式:水平分割、垂直分割、关系视图和MongoDB视图。
| 视图模式 | 描述 | 
|---|---|
| 水平分割 | 在顶部显示关系视图,MongoDB视图在底部。创建新项目时,水平分割是默认视图模式。 | 
| 垂直分割 | 在左侧显示关系视图,MongoDB视图在右侧。 | 
| 关系视图 | 仅显示您的数据库关系图。 | 
| MongoDB 视图 | 仅显示您的MongoDB数据库图。 | 
要切换视图模式,请单击左侧导航栏中的视图模式选项

颜色编码
图中的实体根据它们代表关系数据库或MongoDB数据库进行颜色编码
- 带粉色高亮的实体是关系表。 
- 带绿色高亮的实体是MongoDB集合。 
实体链接
框之间的线条代表连接数据库实体的关系。如果两个框连接,则相应的实体通过外键连接。线条可能显示以下关系特征
- 关系链接上的小横杠表示实体之间的一对一关系。 
- 一个叉(或“鸟爪”)表示关系中的“多个”。 
撤销或重做图形操作
关系迁移器图形支持撤销和重做功能。要撤销或重新应用之前的图形操作,请使用撤销或重做功能。您可以使用图形工具栏或键盘快捷键执行这些操作。
工具栏
您可以使用和按钮在图形工具栏上

键盘快捷键
或者,您可以使用键盘快捷键
| 功能 | Windows 快捷键 | Mac 快捷键 | 
|---|---|---|
| 撤销 | 控制+Z | 命令+Z | 
| 重做 | 控制+Y | 命令+Y | 
关系型和MongoDB视图链接
当你在关系型或MongoDB视图中点击一个框时,关系型迁移器会在另一个视图中突出显示相应的实体。这让你可以看到你的关系型表和MongoDB集合是如何相互映射的。
示例
以下示例展示了跟踪商店订单的数据库的示例图。
关系视图
此关系视图显示了关系型数据库中几个表之间的关系。

此视图显示了以下关系
- 在 - Order表中,- OrderID是主键。- CustomerID和- OrderStatusID是外键。分别包含这些外键引用的- Customer和- OrderStatus表。- Order到- Customer和- Order到- OrderStatus都是多对一关系- 客户可以有多个订单,每个订单只适用于单个客户。在这个例子中,订单是父实体,客户是子实体。 
- 订单状态可以适用于多个订单,每个订单只有一个订单状态。在这个例子中,订单是父实体,订单状态是子实体。 
 
 
- 在 - OrderLine表中,- OrderLineID是主键。- OrderID和- ProductID是外键。分别对应于这些外键的引用,- Order和- Product表中包含了这些引用。- OrderLine到- Order和- OrderLine到- Product都是多对一的关系。- 订单行是一个订单内的单个交易。一个订单可以有多个订单行,每个订单行只适用于单个订单。在这个例子中,OrderLine是父节点,Order是子节点。 
- 一个产品可以应用于多个订单行,每个订单行包含一个单一的产品。在这个例子中,OrderLine是父节点,Product是子节点。 
 
 
MongoDB视图
此MongoDB视图对应于前面的关系视图。

视图中显示的集合和数据类型反映了项目指定的映射规则。
链接图标表示映射到用于外键的关系列的字段。例如,在Order集合中,OrderStatusID字段表示一个外键,它将Order和OrderStatus表连接起来。
新的映射规则
以下新的映射规则已创建,以更好地利用MongoDB的嵌入式数据模型。
- Order集合包含一个规则,将- OrderLines映射为嵌入式数组。关系模式中的- OrderLine表被映射为- Order文档内部的数组对象,使用关系模式中的外键关系。![Order Mapping Rule Example]() 
- Customer集合包含一个规则,将- Orders映射为 嵌入式数组。关系模式中的- Order表被映射为- Customer文档内部的数组对象,使用关系模式中的外键关系。![Customer Mapping Rule Example]() 
上述两个映射规则都移除了映射中的 ID 字段。由于 OrderLines 和 Orders 字段嵌入在父字段中,而不是通过外键进行引用,因此不需要 ID 字段来链接这些字段。

