我有3个表:'notes','categories','subcategories'(MySQL方言): notes category subcategories
序列化方案:
const Note = connectionDB.define('notes', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
categoryId: {
type: Sequelize.INTEGER
},
subcategoryId: {
type: Sequelize.INTEGER
},
title: Sequelize.STRING,
content: {
type: Sequelize.TEXT,
},
timeCreate: Sequelize.STRING,
avatar: Sequelize.STRING
});
Note.belongsTo(Category, {foreignKey: 'categoryId'});
Note.belongsTo(Subcategory, {foreignKey: 'subcategoryId'});
const Category = connectionDB.define('categories', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
name: Sequelize.STRING,
})
Category.belongsToMany(Subcategory, {through: 'categoryId'});
const Subcategory = connectionDB.define('subcategories', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
categoryId: {
type: Sequelize.INTEGER,
},
name: Sequelize.STRING,
})
每个项目“注释”都有一个类别和一个子类别。 “子类别”具有字段“ categoryId”。当我请求所有条目(“注释”)时,我想在每个字段中查看有关“类别”和“子类别”的信息。但是有关子类别的信息不正确。我了解我应该在“包括”“哪里:...” 哦,我不明白。也许我在表之间没有正确的关系。谢谢!
console.log:
[
{ id: 1,
categoryId: 1,
subcategoryId: 1,
title: 'Первая запись',
content: 'Первая тестовая запись',
timeCreate: '8:18, 20-го июня 2018',
avatar: 'uploads/avatars/kaOzCVOgBd.jpg',
createdAt: 2018-06-20T17:18:36.000Z,
updatedAt: 2018-06-20T17:18:36.000Z,
category:
{ id: 1,
name: 'Первая категория',
createdAt: 2018-06-20T17:15:11.000Z,
updatedAt: 2018-06-20T17:15:11.000Z },
subcategory:
{ id: 1,
categoryId: 1,
name: 'Первая под категория первой категории',
createdAt: 2018-06-20T17:16:32.000Z,
updatedAt: 2018-06-20T17:16:32.000Z } },
{ id: 2,
categoryId: 2,
subcategoryId: 2,
title: 'Вторая запись',
content: 'Вторая тестовая запись',
timeCreate: '8:19, 20-го июня 2018',
avatar: 'uploads/avatars/zksFzaoSl0.jpg',
createdAt: 2018-06-20T17:19:12.000Z,
updatedAt: 2018-06-20T17:19:12.000Z,
category:
{ id: 2,
name: 'Вторая категория',
createdAt: 2018-06-20T17:15:26.000Z,
updatedAt: 2018-06-20T17:15:26.000Z },
subcategory:
{ id: 2,
categoryId: 1,
name: 'Вторая подкатегория первой категории',
createdAt: 2018-06-20T17:16:46.000Z,
updatedAt: 2018-06-20T17:16:46.000Z } }]
包括:
Note.findAll({
include: [
{ model: Category },
{ model: Subcategory}
]
})