#relationship #loopbackjs
#взаимосвязь #loopbackjs
Вопрос:
У меня есть объект Bid. Заявка может принадлежать клиенту или Перевозчику (полиморфная принадлежность).
Кроме того, Клиент может принадлежать Перевозчику (если Клиент принадлежит перевозчику, он не может делать ставки), и Клиент — это тот, кто выполняет услугу, за которую они предлагают цену.
Итак, если Перевозчик делает ставку, он должен назначить ей клиентов. В этом сценарии у многих клиентов может быть много заявок, но они не являются заявителями.
Интересно, как лучше всего это сделать. Это похоже на условное отношение.
Я пробовал это в bid.json:
"relations":{
"bidder":{
"type": "belongsTo",
"polymorphic": true
},
"customers": {
"type": "hasMany",
"model": "customer",
"foreignKey": "customerId"
}
}
customer.json:
"relations": {
"bids": {
"type": "hasMany",
"model": "Bid",
"foreignKey": "bidderId",
"polymoprhic": "bidder"
}
"carrier": {
"type": "belongsTo",
"model": "Carrier",
"foreignKey": "carrierId"
},
"assignments": {
"type": "hasMany",
"model": "Bid",
"foreignKey": "bidId"
}
}
carrier.json
"relations": {
"bids": {
"type": "hasMany",
"model": "Bid",
"foreignKey": "bidderId",
"polymoprhic": "bidder"
}
"carrier": {
"type": "hasMany",
"model": "Customer",
"foreignKey": ""
}
}
Ответ №1:
В итоге я добавил новую сущность «Назначение». Таким образом, если перевозчик делает ставку, он может назначить ему клиентов. Если клиент является участником торгов, он назначает себя автоматически
bid.json
"relations":{
"bidder":{
"type": "belongsTo",
"polymorphic": true
},
"assignments": {
"type": "hasMany",
"model": "assignment",
"foreignKey": "bidId"
}
}
customer.json
"relations": {
"bids": {
"type": "hasMany",
"model": "Bid",
"foreignKey": "bidderId",
"polymoprhic": "bidder"
}
"carrier": {
"type": "belongsTo",
"model": "Carrier",
"foreignKey": "carrierId"
},
"assignments": {
"type": "hasMany",
"model": "Assignment",
"foreignKey": "customerId"
}
}
carrier.json
"relations": {
"bids": {
"type": "hasMany",
"model": "Bid",
"foreignKey": "bidderId",
"polymoprhic": "bidder"
},
"customers": {
"type": "hasMany",
"model": "Customer",
"foreignKey": "carrierId"
}
}
assignment.json
"relations": {
"customer": {
"type": "belongsTo",
"model": "Customer",
"foreignKey": ""
},
"licitacion": {
"type": "belongsTo",
"model": "Bid",
"foreignKey": ""
}
}