我的问题很简单:
我有一个名为users的表。这些用户可以有很多联系人。这些联系人是其他用户。
所以我有一个名为userHasContacts的表,其中包含所有者的 id ( userID ) 和联系人的 id ( contactID )。
这两个外键都引用用户表。
这是我的漂亮图表:
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
在续集中,按照我的逻辑,我会写:
Users.hasMany(Users, {foreignKey: 'userID', joinTableName: 'userHasContacts'} );
Users.hasMany(Users, {as: 'Contacts', foreignKey: 'contactID', joinTableName: 'userHasContacts'} );
但它似乎不是这样工作的,我已经 2 小时尝试了几种方法来编写这种关系......
唯一对我有用的是
Users.hasMany(UserHasContacts, {foreignKey: 'contactID', joinTableName: 'userHasContacts'} );
UserHasContacts.findAndCountAll({ where: {userID: id} }).success( function(result) {
res.json(result);
});
但是后来我无法在我的查找查询中加入users表(通过Eager loading),它只是返回userHasContacts内的数据。
如果有人有提示,欢迎您!
提前感谢!