HasOne与ORM中序列化的区别

我正在开发与sequelize ORM sails.js应用程序。 对于何时需要使用“属于”和“必须”,我有点困惑。

该文件指出:

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

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

除了指定的地方外,还有其他的区别吗? 这两种情况下的行为是否仍然相同?

这是更普遍的问题。

主要区别在于语义。 你必须决定什么是关系(一些愚蠢的例子):

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

反过来看起来有点奇怪:

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

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

如果RightArm和Men是模型,则可以如下所示:

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

正如你注意到的,在数据​​库表结构中也有不同之处:

BelongsTo将在hasOne将添加到目标上的源代码上添加foreignKey (Sequelize在'RightArm'表中创build新列'ManId',但不会在'Man'表中创build'RightArmId'列)。

我没有看到更多的差异。