我刚刚开始使用Loopback,并定义了两个模型,这些模型应该由琐碎的多对多关系来约束。
第一个模型是Customer
,第二个模型是Pet
。
每个客户可以拥有不同的宠物,每个宠物可以由不同的客户拥有。
我使用loopback-cli创建关系,并在Pet模型作为参考的Customer模型上对其进行定义。代码中唯一的变化是:
/* customer.json */
"relations": {
"Pets": {
"type": "hasAndBelongsToMany",
"model": "Pet",
"foreignKey": ""
}
}
此后,我发现了一组针对诸如/customers/{customerId}/pets
之类的资源的各种操作的REST端点集。
我又如何获得关系的相反“一面”,就REST api而言,它是/pets/{petId}/customers
?
我不想创建新关系,也不想创建新模型。我只想重用已经包含我所需信息的当前MySQL表CustomerPet
。
预先感谢
答案 0 :(得分:1)
处理 hasAndBelongsToMany 关系的正确方法是使用cli工具在两个方向上创建它:
这意味着数据库中有两个不同的表:PetCustomer
和CustomerPet
。
然后,当在两个实体之间创建新关系时,REST api自动处理两个表。有两种方法可以做到:
/customers/{:customerId}/pets
/customers/{:customerId}/pets/rel/{:petId}
我想复制具有多对多关系的数据库表是拥有这样一种灵活且易于使用的工具(如环回)的代价。