首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`BelongsTo`’关系的好处是什么?

‘`BelongsTo`’关系的好处是什么?
EN

Stack Overflow用户
提问于 2020-12-07 17:27:52
回答 1查看 124关注 0票数 0

定义BelongsTo关系有什么好处?

当我定义HasMany关系时,我可以执行我的所有查询而不会遗漏任何人(如果您发现使用BelongsTo关系很重要,我更愿意给我举个例子)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-08 00:46:40

好处是能够翻转关系中的“基础”和“孩子”。LoopBack 4关系过滤器类似于,这意味着筛选器必须从基本模型中限定范围。

来自“父模型过滤”文档

其中,不能使用模型查询(create()find()replaceById()等)使用的过滤器来根据父模型的值对模型进行筛选。看它的GitHub问题

例如,我们可能有许多客户的订单:

代码语言:javascript
复制
@hasMany(() => Order)
orders?: Order[];

这种关系允许查询“由客户发出的订单”或“由过滤后的客户列表发出的订单”,而不是反过来;“发出该订单的客户”或“作出筛选订单列表的客户”。

属于关系通过在引用客户的顺序上创建一个键来解决这个问题:

代码语言:javascript
复制
@belongsTo(() => Customer)
customerId: number;

这意味着我们现在可以查询“是哪个客户下的订单”或“哪些客户做了筛选的订单列表”。

另一个重要的因素是,由于ANSI SQL没有表示这种关系的方法,所以不能将有许多关系的关系变成强关系。来自医生们

LoopBack 4实现了与@belongsTo()@hasMany()@hasOne()等的弱关系。这意味着约束是由LoopBack 4本身执行的,而不是底层数据库引擎。这对于集成跨数据库关系非常有用,从而允许LoopBack 4应用程序部分地扮演数据湖的角色。 但是,这意味着可以在LoopBack 4应用程序之外键入无效数据。为了解决这个问题,一些LoopBack 4连接器(如PostgreSQLMySQL)允许通过@model()装饰器定义外键约束。请查阅相应的连接器文档以检查兼容性。

斜体字强调的是为什么适用这些限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65186455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档