Я просто создаю таблицу Company
и Industry
в соотношении «многие ко многим». Компания может содержать несколько отраслей, а одна отрасль может содержать несколько стран. В пользовательском интерфейсе, например, поле множественного выбора для компании, где я могу выбрать несколько отраслей.
Что я делаю в моделях:
Промышленность. js
'use strict';
module.exports = (sequelize, DataTypes) => {
const Industry = sequelize.define('Industry', {
industry_name: DataTypes.STRING,
}, {
timestamps: false,
underscored: true,
tableName: 'industry',
});
Industry.associate = function(models) {
Industry.belongsToMany(models.Company, {
through: 'company_industry_relation', foreignkey: 'industry_id'
});
};
return Industry;
};
Company. js
'use strict';
module.exports = (sequelize, DataTypes) => {
const Company = sequelize.define('Company', {
company_name: DataTypes.STRING,
}, {
timestamps: false,
underscored: true,
tableName: 'company',
});
Company.associate = function(models) {
Company.belongsToMany(models.Industry, {
through: 'company_industry_relation', foreignKey: 'company_id'
});
};
return Company;
};
CompanyIndustryRelation. js
'use strict';
module.exports = (sequelize, DataTypes) => {
const CompanyIndustryRelation = sequelize.define('CompanyIndustryRelation', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
},
}, {
timestamps: false,
underscored: true,
tableName: 'company_industry_relation',
});
CompanyIndustryRelation.associate = function(models) {
CompanyIndustryRelation.belongsTo(models.Company, { foreignKey: 'company_id' });
CompanyIndustryRelation.belongsTo(models.Industry, { foreignKey: 'industry_id' });
};
return CompanyIndustryRelation;
};
Но меня беспокоит то, что эти модели создают company_id (PK) и industry_id (PK) в company_industry_relation
стол. Также id (PK) не создается в таблице. По моему мнению, эти два столбца (company_id и industry_id) должны быть внешними ключами, а идентификатор (PK) должен создаваться в отличие от этих двух столбцов?
Может кто-нибудь иметь представление об этом? Заранее спасибо!