【问题标题】:sequelize duplicated foreignKey on 1:m association在 1:m 关联上对重复的外键进行续集
【发布时间】:2017-04-11 01:04:30
【问题描述】:

我有一个包含公告和用户的数据库。

用户可以创建多个公告,而一个公告只能由一个用户创建。

为了使用 sequelize 来定义它,我这样做了:

公告模型:

    'use strict';
module.exports = function (sequelize, DataTypes) {
    var announcement = sequelize.define('announcements', {
        id: {
            type: DataTypes.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        title: DataTypes.STRING,
        description: DataTypes.TEXT,
        likes: DataTypes.INTEGER
    }, {
        classMethods: {
            associate: function (models) {
                /**
                 * an announcement is created by only one user
                 */
                announcement.belongsTo(models.users, {
                  as: 'Owner'
                });
            }
        }
    });
    return announcement;
}

用户模型:

'use strict';
module.exports = function (sequelize, DataTypes) {
    var users = sequelize.define('users', {
        id: {
            type: DataTypes.INTEGER,
            primaryKey: true
        },
        username: {
          type: DataTypes.STRING,
          unique: true
        },
        email: {
          type: DataTypes.STRING,
          unique: true,
          validate: {
            isEmail: true
          }
        }
    }, {
        timestamps: true,
        classMethods: {
            associate: function (models) {
                /**
                 * a user has many announcements
                 */
                users.hasMany(models.announcements, {
                    as: 'Announcements',
                    foreingKey: {
                        name: 'id',
                        allowNull: false
                    }
                });
            }
        }
    });
    return users;
};

运行应用程序后,我在公告数据库中发现重复的用户 ID(OwnerId 和 userId)。它必须只有一个“OwnerId”。

那么我做错了什么?

【问题讨论】:

    标签: mysql database foreign-keys associations sequelize.js


    【解决方案1】:

    我发现了问题:我拼错了“foreignKey”并将其写为“foreingKey”。现在一切正常

    【讨论】:

      猜你喜欢
      • 2016-10-11
      • 1970-01-01
      • 2020-09-10
      • 2018-06-27
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      相关资源
      最近更新 更多