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'列)。
我没有看到更多的差异。