【发布时间】:2021-06-05 08:40:32
【问题描述】:
我有两个表 campaign 和 audience ,我正在设置它们之间的多对多关系。
广告系列架构,
const Campaign = sequelize.define("campaign", {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
campaign_name: {
type: DataTypes.STRING(50),
allowNull: false,
},
text: {
type: DataTypes.STRING(200),
allowNull: false,
},
start_date: {
type: DataTypes.INTEGER,
allowNull: false,
},
end_date: {
type: DataTypes.INTEGER,
allowNull: false,
},
});
受众模式,
const Audience = sequelize.define("audience", {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
audience_name: {
type: DataTypes.STRING(50),
allowNull: false,
},
phone: {
type: DataTypes.STRING(12),
allowNull: true,
},
email: {
type: DataTypes.STRING(50),
allowNull: true,
},
});
然后我声明了多对多表campaign_audience,
const CampaignAudience = sequelize.define("campaign_audience", {
audienceId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: Audience,
key: "id",
},
},
campaignId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: Campaign,
key: "id",
},
},
});
然后设置它们之间的关系,
CampaignModel.belongsToMany(AudienceModel, {
through: CampaignAudienceModel,
});
AudienceModel.belongsToMany(CampaignModel, {
through: CampaignAudienceModel,
});
现在我已经创建了所有表。问题是campaignId,audienceId 中的campaign_audience 表不是外键。假设我有 id 为 1 的活动,以及 id 为 11,12 的受众。我可以发布 ID 为 43 的受众,并保存在不是有效受众 ID 的表中。如何将联结表 id 设置为外键?
【问题讨论】:
标签: mysql node.js sequelize.js schema