我有两个模型,items 和 order,它们具有多对多关联。在过去的 5 个小时里,我一直在尝试做的是想出一种方法来将多个项目对象添加到一个订单中,包括重复项。
如果项目是独一无二的,它就可以很好地工作,但如果我尝试这样的事情:
order.items.add([12, 13, 12, 12]);
order.save();
它只会保存 12、13 件。重复的将被忽略,如果您想订购一件以上的任何商品,则不太好。
任何建议都会有所帮助。
最佳答案
数据库方案中的多对多关联是在一个表的任何记录与另一个表的任何记录之间创建关系,当然它总是唯一的,因为12
已经与order
有关联记录。
解决方案是,使用额外的模型来实现。例如,在 models
文件夹:
订单.js
module.exports = {
attributes: {
items : {collection: 'OrderItem', via: 'order'}
}
};
OrderItem.js
module.exports = {
attributes: {
order : {model: 'Order'},
item : {model: 'Item'}
}
};
项目.js
module.exports = {
attributes: {
}
};
因此来自 Order
模型,你可以添加一些OrderItem
那是一个代表 Order
之间关系的模型和 Item
, 和 OrderItem
在 Order
中是独一无二的尽管其记录下的 Item 可能相同。
关于javascript - 使用多对多关联向 SailsJS 模型添加重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232002/