Sequelize, Fremdschlüssel als zusammengesetzter Primärschlüssel

ist es möglich, zwei Fremdschlüssel als zusammengesetzten Primärschlüssel eines Modells zu definieren?

Ein Benutzer kann nur Mitglied einer Familie sein, eine Familie kann viele Mitglieder haben und die Tabelle der Familienmitglieder benötigt die Referenzen des Benutzers und der Familie.

const User = sequelize.define(
    'User',
    {
        id: { type: dataTypes.INTEGER.UNSIGNED, autoIncrement: true, primaryKey: true },
        name: { type: dataTypes.STRING(30) },
        email: { type: dataTypes.STRING(30) }
        ...
    },
    {
        classMethods: {
            associate(models) {
                User.hasOne(models.FamilyMember, {
                    foreignKey: 'user_id'
                }
            }
        }
    }
)

const Family = sequelize.define(
    'Family',
    {
        name: { type: dataTypes.STRING(30) }
    },
    {
        classMethods: {
            associate(models) {
                Family.hasMany(models.FamilyMember, {
                    foreignKey: 'family_id'
                }
            }
        }
    }
)

const FamilyMember = sequelize.define(
    'FamilyMember',
    {
        name: { type: dataTypes.STRING(30) },
        /*
        family_id and user_id will be here after associations but I wanted them to be a composite primaryKey
        */
    }
)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage