对同一表中的多个外键进行续订关联

时间:2017-12-09 22:01:01

标签: javascript node.js postgresql sequelize.js

目标

使用Sequelize和Postgres,我正在尝试创建一个包含值及其单位的读数表。单位是另一个表单位的外键。我对协会感到困惑。

假设

每个阅读必须具有太阳值/单位和月亮值/单位。 阅读单位可以不同

示例数据库

Readings
id | sun_temp | sun_temp_unit_id | moon_temp | moon_temp_unit_id
1      5               1               2             2
2      10              1               4             2

Units
id | Name
1    brapple
2    schmeckle

读数表定义

const Reading = sequelize.define("Reading", {
    id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    sun_temp: DataTypes.INTEGER,
    moon_temp: DataTypes.INTEGER
}, {
    timestamps: false,
    tableName: "readings"
});

Reading.associate = (models) => {
    Reading.belongsTo(models.Unit, {foreignKey: {name: 'sun_temp_unit_id'})
    Reading.belongsTo(models.Unit, {foreignKey: {name: 'moon_temp_unit_id'})
}

单位表定义

const Unit = sequelize.define("Unit", {
    id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    name: DataTypes.STRING
}, {
    timestamps: false,
    tableName: "units"
});

Unit.associate = (models) => {
    ??
}

问题:

  1. 这是什么类型的员工?
  2. 如何设置阅读模型?
  3. 如何设置单位模型?
  4. 使用什么查询来获取阅读模型和单位模型? (这里我想查看/访问每个单位名称的读数值/单位对)
  5. 如果这是一种设置数据库的不良方式,还有哪些其他建议?

0 个答案:

没有答案