- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的问题很简单:
我有一个名为users 的表。这些用户可以有很多联系人。这些联系人是其他用户。
所以我有一个名为 userHasContacts 的表,其中包含所有者的 ID (userID) 和联系人的 ID (contactID ).
这两个外键都引用了 users 表。
这是我的漂亮图表:
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
在 sequelize 中,按照我的逻辑,我会写:
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 中的数据。
如果有人得到提示,欢迎您!
提前致谢!
最佳答案
因为你要做的是自关联,你只需要调用 hasMany 一次,这将创建一个联结表
User.hasMany(User, { as: 'Contacts', joinTableName: 'userHasContacts'})
这将创建 userHasContacts 表:
CREATE TABLE IF NOT EXISTS `userHasContacts` (`userId` INTEGER , `ContactsId` INTEGER , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`userId`,`ContactsId`)) ENGINE=InnoDB;
要查找用户及其联系人,您可以执行以下操作:
User.find({ where: ..., include: [{model: User, as: 'Contacts'}]})
关于mysql - SequelizeJS - hasMany 到具有连接表的同一个表上的 hasMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18950886/
是否可以在一个集合/json 中获取所有详细信息(用户、帖子、postimages)? 用户->hasmany(帖子) 后->hasmany(后图像) 用户: 身份证 |姓名 邮政: 身份证 |用户
我正在制作一个具有基本消息传递功能的 PHP/MySQL Web 应用程序。两个用户将能够进行包含一系列消息的“对话”。 以下是我设想的模型关系: 用户> 多对多> 对话 对话> 多对多> 用户和一对
我的问题很简单: 我有一个名为users 的表。这些用户可以有很多联系人。这些联系人是其他用户。 所以我有一个名为 userHasContacts 的表,其中包含所有者的 ID (userID) 和联
我有两个 GORM 域类。一个是卡,卡上有很多购买。有什么方法可以搜索大于或等于某些购买的卡。这可能是一个例子 我们有4张牌: Card1:橙、橙、苹果 Card2:苹果、橙子 Card3:橙色,橙色
背景: 我有三个表,即生产、生产线和操作。 生产线引用其先前的生产线,列名为“parent_id”。生产线的深度应等于操作的深度。 以下是他们的关系: Production_lines has man
我有两个表(项目、任务)。 项目表结构如下: id - title - desc - others_column 1 - title - desc - others 2 - title - des
提前感谢您的帮助。 我有两个模型菜单和窗口及其关联 db.menus.hasMany(db.windows); db.windows.belongsTo(db.windows); 我正在尝试使用与此类
使用hasMany有区别吗 static hasMany = [objects:Object] 并添加对象的集合 Set objects 最佳答案 使用之间绝对有区别: static hasMany
我有这四个类: class Animal { static hasMany = [legs: Leg] } class Cat extends Animal { static hasM
当我尝试创建与其父模型关联的子模型时遇到问题。 我有 2 个模型: 机构(有很多地址) 地址(有 1 个机构) 当我单击一个机构并转到 show.blade.php 时,我有一个表单可以为该机构创建地
我正在运行 cakephp 2.0.2,我有以下关系 Category hasMany CategoryWork Work hasMany CategoryWork Categ
是否有一个简单的解决方案可以通过模型上的 hasMany Relation 分离(不删除)所有相关模型? 例如,我有两个表: 学院(ID、名称) 学生(id、姓名、college_id(可为空)) 在
Ember Data 是否类似于 Rails 的 has_many ..., :through =>功能? 最佳答案 它不是。在 1.0 Beta 中添加了一个 Unresolved 问题。里程碑:M
我有用户表,然后是他们的兴趣表。 最好是通过表来管理 hasMany 来管理两者之间的关系,还是最好将 CSV 写入“用户”表中的一列。 到目前为止,我一直在通过表格使用 hasMany,但想知道最好
假设我有两个模型:Park 和 Items。通过 HasMany 关系,每个 Park 都可以有多个 Items。 在 Items 表中有一个 park_id 字段和一个 type 标志:一个 Ite
这是save和 saveMany HasMany 上的方法关系类,但 dissociate(Many) 在哪里?/detach(Many)方法?也没有获得逆关系方法的内置方法,那么从 HasMany
我试图让我在 CakePHP 2.3 中的关联模型正确保存,但我遇到了问题。我正在存储帖子,我想知道这些帖子中有哪些链接。对于这些链接中的每一个,如果可用,我想存储 anchor 文本。我的数据库设置
我有两个类(例如简化): public class Data { public int Id {get; set;} public string Value { get; set; }
有域对象: class Book { List pictures static hasMany = [pictures:Picture] static mappi
我正在尝试实现 HasMany与不可为空的键列的映射。 我的映射如下所示: public void Override(AutoMapping mapping) { mapping.Table(
我是一名优秀的程序员,十分优秀!