当前位置: 首页 > 面试题库 >

HasOne和BelongsTo在SOR序列化ORM中的区别

拓拔玺
2023-03-14
问题内容

我正在使用sequelize ORM
开发sails.js应用程序。对于何时需要使用BelongsTo和HasOne,我有些困惑。

该文档指出:

BelongsTo 关联是源模型上存在一对一关系的外键的关联。

HasOne 关联是目标模型上存在一对一关系的外键的关联。

除了指定位置以外,还有其他区别吗?在这两种情况下,行为是否仍保持相同?


问题答案:

这是更普遍的问题。

主要区别在于语义。您必须确定关系是什么(有些愚蠢的示例):

人只有一只右臂。 右臂属于一个人。

相反地​​说,看起来有点奇怪:

右臂有一个男人。 一个男人属于右臂。

你可以没有右臂的男人。但是单独的右臂是没有用的。

如果RightArm和Men是模型的续集,它可能看起来像:

Man.hasOne(RightArm);
RightArm.belongsTo(Man);

正如您所注意到的,db表结构也有所不同:

BelongsTo将在源上添加foreignKey,而hasOne将添加到目标上
(Sequelize在表’RightArm’中创建新列’ManId’,但不会在’Man’表中创建’RightArmId’列)。

我看不出更多差异。



 类似资料:
  • 我在Laravel应用程序中有两个模型,联系人和地址彼此相关。 联系人字段:[id,姓名]地址字段:[id,地址,联系人id] 在联系人模型中,我添加了: 在地址模型中,我添加了: 我想知道在函数上交换hasOne和belongsTo是可以的,还是会违反现有的任何约定。 如下联系人字段:[id,name,address\u id]地址字段:[id,address] 我这样问的原因是因为我想创建一个

  • 本文向大家介绍Java中的序列化和外部化之间的区别,包括了Java中的序列化和外部化之间的区别的使用技巧和注意事项,需要的朋友参考一下 序列化和外部化都是将对象转换为流字节并将字节流存储在数据库或内存中的过程。实现java.io.Serializable接口的类可以序列化。另一方面,根据应用程序的要求,外部化用于自定义序列化。外部化扩展了java.io.Serializable。  序号 键 序列

  • 问题内容: 我已经开始在我的第一个android应用程序上进行工作,并且具有处理多层图像的应用程序。我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些层的任何选项,例如基于文本的层)。 无论如何,我已经确保需要写入文件的类是“可序列化的”,但是由于android.graphics.Bitmap不可序列化这一事实而遇到了一些障碍。以下代码实质上将位图作为PN

  • 我有两个Java应用程序-和。需要通过套接字发送到类的Slave实例。 Master创建这个类的实例,序列化它并通过套接字发送到Slave。 在上,一切正常。没有异常。接收数据并尝试对其进行反序列化。引发以下异常 JAVAlang.ClassNotFoundException 在类中没有错误,因为如果我用优化函数=null创建它,那么就会毫无问题地反序列化它。我试图将实例序列化到中的文件中,然后也

  • 我尝试使用java和python protobuf序列化方法,例如 在python中,api是 在java中,api是 结果是一样的吗?如果不是,如何将java结果转换为python结果?

  • 我有一个kdtree,其节点由以下字段组成:公共静态类节点实现可序列化{ 其中DataPoint定义: 公共静态类DataPoint实现可序列化{公共可比X;公共可比Y;公共可比Z; 我想序列化树,存储在文件中并在回答范围查询时反序列化。我对这个概念od序列化的理解并不好。从我收集的任何内容中,我编写了以下函数,但不起作用。有人能帮忙吗?