尝试在引用买方和卖方s.t.的PostgreSQL数据库中创建表Transaction。两者都是“用户”表中的对象。
我认为我正在进行迁移,以使外观类似于以下内容:
exports.up = function(knex,Promise) {
return knex.schema.createtable('likes',t => {
t.increments('id').primary()
t.integer('buyers_id').references('users.id').onDelete('CASCADE')
t.integer('sellers_id').references('users.id').onDelete('CASCADE')
...
t.datetime("created_at");
t.datetime("updated_at");
})
};
接下来,我需要管理模型中的关联,例如,交易属于买方和卖方,它们都是User类的成员。
为澄清这个问题,我能够使用这些属性创建模型,但关联似乎不起作用。
这是我的交易模型:
const BaseModel = require("./BaseModel");
// const Password = require('objection-password')();
class Transaction extends BaseModel {
static get tableName() {
return "transactions";
}
static get relationmappings () {
const User = require('./User');
const Item = require('./Item')
return {
buyer: {
relation: BaseModel.BelongsToOneRelation,modelClass: User,join: {
from: 'transactions.buyers_id',to: 'users.id'
}
},seller: {
relation: BaseModel.BelongsToOneRelation,join: {
from: 'transactions.sellers_id',books: {
relation: BaseModel.BelongsToOneRelation,modelClass: Item,join: {
from: 'transactions.items_id',to: 'items.id'
}
}
}
}
}
module.exports = Transaction;
以下是我试图吸引买家的相关路线:
let router = express.Router();
router.get('/',async (req,res) => {
const transactions = await Transaction
.query()
.eager(['buyer','items')
res.json(transactions);
});
我已经弄清楚了。上面的代码有效,使用别名买卖双方并将这两种类型的用户与交易相关联。