三表关系的循环依赖链错误

时间:2018-12-27 20:16:20

标签: sequelize.js

我正在部分基于此design为我的应用程序中的用户首选项创建数据库表设置,并且在创建表和带有迁移的外键关系时,我似乎无法弄清楚造成这种关系的原因这些表很好地工作。下面提供了有关这些表应如何关联以及我如何在模型文件中进行关联的ERD,但我收到了Cyclic dependency found错误,无法弄清楚什么关系不正确。

完整的错误消息:

Unhandled rejection Error: Cyclic dependency found. user_preference is dependent of itself.
Dependency chain: user_preference -> preference => user_preference

这是EDM:

EDM

以下是该表格的示例:

user_preference_id | user_id | preference_id | allowed_preference_id
1 | 1 | 2 | 2
2 | 1 | 3 | 1
3 | 2 | 2 | 1

user_preference表中,一个user_id可以有多个preference_idallowed_preference_id

基于表格示例,在该示例中我可以为每一列使用重复的整数值,这是否意味着我应该为.hasMany()表中的每个FK拥有一个user_preference

以下是当前关联:

用户表:

没有关联

用户首选项表:

UserPreference.belongsTo(db.User, { foreignKey: 'user_id'}),
UserPreference.hasMany(db.Preference, { foreignKey: 'preference_id'}),
UserPreference.hasMany(db.AllowedPreferenceValue, { foreignKey: 'allowed_preference_value_id'});

首选项表:

没有关联

allowed_preference_value表:

AllowedPreferenceValue.belongsTo(db.Preference, { foreignKey: 'preference_id'});

0 个答案:

没有答案