关联通过在Sails.js中使用多个一对多关联

时间:2014-09-08 16:41:16

标签: node.js sails.js

http://sailsjs.org/#/documentation/concepts/ORM/Associations/ThroughAssociations.html 我通过上面的链接看到你的解释。 但我不知道究竟是什么意思。 你能为我做一些例子吗? 谢谢

1 个答案:

答案 0 :(得分:2)

假设我们在UserPet之间存在多对多关系(如您所见here)。

当我们关联一个user-pet时,新的元组将插入到连接表user_pet中,其中包含User的id和Pet的id(由sails自动执行)。

//user: {id: 1, name: 'userfoo'};
//pet: {id: 2, name: 'petfoo'};
user.pets.add(pet.id);
user.save();

//in the database (just an example):
user_pet: {user_id: 1, pet_id: 2}

但现在我们需要知道用户与宠物相关联的日期和地址 为此,我们需要在连接表中添加更多信息。

Sails还没有给我们这个支持,所以我们需要创建一个额外的模型作为我们需要的任何属性的中介,并手动执行关联:

user: {id: 1, name: 'userfoo'};
pet: {id: 2, name: 'petfoo'};

//Through Association
my_user_pet: {user_id: 1, pet_id: 2, met_date: '2014-08-08', address: 'foo street...'}
my_user_pet.save();