何时在Loopback 4中使用hasMany和belongsTo关系?

问题描述 投票:0回答:1

我有一个关于LoopBack 4和关系的简单问题。

让我们以官方的TodoList为例。

@hasMany有一个TodoList.model定义,我没有问题。我的问题是关于BelongsTo的关系,是否有必要在@belongsTo中定义todo.model?是否总是需要定义两种关系,或者我如何知道选择哪一种?如果只需要一个关系,为什么还要选择两个关系?如果我选择一个而不是另一个,有什么区别?

围绕这个话题的许多疑问对我来说。

node.js loopbackjs
1个回答
0
投票

这两种关系类型虽然代表了类似的关系,但彼此之间存在细微差别。

正如我们从here文档中看到的那样,

hasMany关系表示通过引用完整性将模型与另一个模型的一对多连接。参照完整性由目标模型上的外键约束强制执行,该约束通常引用源模型上的主键。此关系表示声明或源模型的每个实例都具有零个或多个目标模型的实例。例如,在具有客户和订单的应用程序中,客户可以拥有许多订单

因此,如果您需要FK关系1:n,那么您将使用它。但是,当FK位于“一侧”时,将使用此功能。意思是,客户(一)表将订单(很多)列作为带有订单表的FK数组。

正如我们从here文档中看到的那样,

belongsTo关系表示通过引用完整性将模型与另一个模型进行多对一连接。引用完整性由源模型上的外键约束强制执行,该约束通常引用目标模型上的主键。此关系表示声明或源模型的每个实例都属于目标模型的一个实例。例如,在具有客户和订单的应用程序中,订单始终属于一个客户

因此,如果您需要FK关系1:n,那么您将使用它。但是,当FK位于'很多'侧时,将使用此功能。意思是,Order(很多)表将customer(one)列作为带有Customer表的FK。这里不需要数组。

大多数时候,你会使用属于这种情况的属于关系。这适用于几乎所有场景。我还没有遇到过使用hasMany的具体案例。

© www.soinside.com 2019 - 2024. All rights reserved.