Node.js NodeJS Sequelize-多重所有权

Node.js NodeJS Sequelize-多重所有权,node.js,orm,dao,sequelize.js,Node.js,Orm,Dao,Sequelize.js,在我的应用程序中,我有用户和联系人。用户向其他用户发出联系请求。ContactRequest有一个requester和requestee字段。我不知道该怎么办。我不想要Users、ContactRequests和ContactRequestsUsers表(如果我在Users和ContactRequests上都定义了hasMany或hasOne,sequelize就会这样做) 因此,让我首先定义一些模型- var User = sequelize.define('User', { id:

在我的应用程序中,我有用户和联系人。用户向其他用户发出联系请求。ContactRequest有一个requester和requestee字段。我不知道该怎么办。我不想要Users、ContactRequests和ContactRequestsUsers表(如果我在Users和ContactRequests上都定义了hasMany或hasOne,sequelize就会这样做)

因此,让我首先定义一些模型-

var User = sequelize.define('User', {
    id: {type: seq.INTEGER, primaryKey: true, autoIncrement: true},
    username: {
        type: sequelize.STRING(32)
    }
});

var ContactRequest = sequelize.define('ContactRequest', {
    id: {type: seq.INTEGER, primaryKey: true, autoIncrement: true}
});
我不知道我应该做些什么。看起来我应该可以用几种方法(理论上)做到这一点,但我无法用我尝试过的任何方法

// User Has Many?
User.hasMany(ContactRequest, {as: 'Requester', foreignKey: 'requester'});
User.hasMany(ContactRequest, {as: 'Requestee', foreignKey: 'requestee'});

// ContactRequest Belongs to?
ContactRequest.belongsTo(User, {});

// Experience Has One?
ContactRequest.hasOne(User, {as: 'Requester'});
ContactRequest.hasOne(User, {as: 'Requestee'});
对于每个变体,我都尝试了不同的方法来检查userA是否向userB发出了ContactRequest

// Checking if a user has a contact request?

var userA = 'someuser1';
var userB = 'someuser2';

ContactRequest.find({where: {'Requester.username': userA, 'Requestee.username': userB}, include: [{model: User, as: 'Requester'}, {model: User, as: 'Requestee'}]}).success(function(cr) {
    console.log(cr);
});

// Maybe by the user?

User.find({where: {username: userA}}).success(function(someuser) {
    someuser.getRequestee({where: {'Requestee.username': userB}, include: [{model: User, as: 'Requestee'}]}).success(function(cr) {
        console.log(cr);
    });
});
我不知道我哪里出了问题,但我不能让它工作。任何帮助或远见都将不胜感激