了解图表
本页介绍如何解释在Relational Migrator中创建的图表。 每个图表由两个视图组成,一个用于关系数据库,另一个用于MongoDB 数据库。 这些视图显示数据库中实体之间的关系。
关系视图
在关系视图中,每个框代表关系数据库中的一个表。 框标题表示表名称。
每个框中列出了相应表中的列。 对于每一列,该框指示列名称及其数据类型。
某些列带有图标来指示其在表中的角色:
钥匙图标表示表的主键。
链接图标表示外键。
MongoDB 视图
在MongoDB视图中,每个框代表MongoDB 数据库中的一个集合。 框标题表示集合名称。
每个框中都列出了相应集合中的字段。 对于每个字段,该方框会指示字段名称及其数据类型。
如果集合包含嵌入式文档或数组,则这些字段将内联显示在同一集合中。
某些字段带有图标来指示其在表中的角色:
钥匙图标指示集合的
_id
字段。 当您使用wrapped
键处理策略时,_id
字段包含子字段。 在这种情况下,该框包含多个应用于单个字段的按键图标。链接图标表示该字段映射到外键中使用的关系列。
选择查看模式
Relational Migrator提供不同的图表视图模式:水平分割、垂直分割、关系视图和MongoDB视图。
查看模式 | 说明 |
---|---|
水平分割 | 在顶部显示关系视图,在底部显示MongoDB视图。 创建新项目时,水平分割是默认视图模式。 |
垂直分割 | 左侧显示关系视图,右侧显示MongoDB视图。 |
关系视图 | 仅显示关系数据库图表。 |
MongoDB 视图 | 仅显示您的MongoDB 数据库图表。 |
要切换视图模式,请单击左侧导航栏中的视图模式选项:
颜色编码
图中的实体根据是代表关系数据库还是MongoDB 数据库而进行颜色编码:
粉红色突出显示的实体是关系表。
以绿色突出显示的实体是MongoDB集合。
实体链接
方框之间的线表示连接数据库实体的关系。 如果连接了两个盒子,则相应的实体将通过外键链接起来。 这些线条可能会显示以下关系特征:
关系链接上的小条表示实体之间的一对一关系。
叉形(或“鱼尾纹”)表示关系中的“多个”。
撤消或重做图表操作
Relational Migrator图表支持撤消和重做功能。 要撤消或重新应用上一个图表动作,请使用撤消或重做功能。 您可以使用图表工具栏或键盘快捷键来执行这些操作。
工具栏
您可以使用 和图表工具栏上的按钮:
键盘快捷键
或者,您可以使用键盘快捷键:
function | Windows快捷方式 | Mac 快捷方式 |
---|---|---|
Undo |
|
|
Redo |
|
|
关系和MongoDB视图链接
当您单击关系视图或MongoDB视图中的框时, Relational Migrator会在相反的视图中突出显示相应的实体。 这样,您就可以查看关系表和MongoDB集合是如何相互映射的。
示例
以下示例显示了跟踪存储订单的数据库的示例图表。
关系视图
此关系视图显示关系关系数据库中多个表的关系:
该视图显示以下关系:
在
Order
表中,OrderID
是主键。CustomerID
和OrderStatusID
是外键。Customer
和OrderStatus
表分别包含这些外键的引用。Order
到Customer
以及Order
到OrderStatus
都是多对一关系:一个客户可以有多个订单,每个订单只适用于一个客户。 在此示例中,Order(订单)为父项, 客户数 (客户)为子项。
一个订单状态可以应用于多个订单,每个订单只有一个订单状态。 在此示例中,Order 为父文档,OrderStatus 为子文档。
在
OrderLine
表中,OrderLineID
是主键。OrderID
和ProductID
是外键。Order
和Product
表分别包含这些外键的引用。OrderLine
到Order
以及OrderLine
到Product
都是多对一关系:订单行是订单中的单个事务。 一个订单可以有多个订单行,每个订单行适用于一个订单。 在此示例中,OrderLine 为父项,Order 为子项。
一种产品可应用多个订单行,每个订单行都包含一种产品。 在此示例中,OrderLine 为父项,Product 为子项。
MongoDB 视图
此MongoDB视图对应于上一个 Relational 视图:
视图中显示的集合和数据类型反映了为项目指定的映射规则。
链接图标表示映射到外键中使用的关系列的字段。 示例,在Order
集合中, OrderStatusID
字段表示链接Order
和OrderStatus
表的外键。
新映射规则
为了更好地利用 MongoDB 的嵌入式数据模型,创建了以下新的映射规则:
Order
集合包含一条将OrderLines
映射为嵌入式大量的规则。 使用关系模式中的外键关系,将关系模式中的OrderLine
表映射为Order
文档内的对象大量。Customer
集合包含一条将Orders
映射为嵌入式大量的规则。 使用关系模式中的外键关系,将关系模式中的Order
表映射为Customer
文档内的对象大量。
前面的两条映射规则均会从映射中删除 ID 字段。 由于OrderLines
和Orders
字段嵌入在其父字段中,而不是使用外键引用,因此 ID 字段不需要将这些字段链接在一起。