Mysql 如何使用Sequelize从不同的表中插入/查找外键相关的行?
我想我在这个问题上已经做了足够的研究,我只是头疼而已 以下是我所做和理解的:我重组了MySQL数据库,以便将用户的数据保存在不同的表中,我使用外键。到目前为止,我的结论是,外键只用于一致性和控制,它们不会自动化或执行任何其他操作(例如,要在两个表中插入关于同一用户的数据,我需要使用两个单独的insert语句,外键在某种程度上无助于使其不同或自动) 很好。以下是我想做的:我想使用Sequelize一次插入、更新和检索所有相关表中的数据,但我完全不知道如何做到这一点。例如,如果用户注册,我希望能够在包含一些用户信息的表“a”中插入数据,并在同一任务中在表B中插入一些其他数据(如专用表中的用户设置或其他)。与检索相同,我希望能够获得一个对象(或数组),其中包含来自不同表的所有相关数据,这些数据符合我要查找的条件 Sequelize文档以一种每件事都依赖于前一件事的方式涵盖了这些事情,Sequelize非常臃肿,有很多我不需要的东西。我不想使用.sync()。我不想使用迁移。我已经创建了我的数据库结构,我希望Sequelize附加到它 是否可以同时插入和检索多个相关行,并获取/使用单个Sequelize命令/对象?怎么做? 同样,我所说的“相关数据”是指通过共享同一外键而“链接”的数据 是否可以同时插入和检索多个相关行 时间和获取/使用单个Sequelize命令/对象?怎么做 对。你需要的是 看看下面的例子Mysql 如何使用Sequelize从不同的表中插入/查找外键相关的行?,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我想我在这个问题上已经做了足够的研究,我只是头疼而已 以下是我所做和理解的:我重组了MySQL数据库,以便将用户的数据保存在不同的表中,我使用外键。到目前为止,我的结论是,外键只用于一致性和控制,它们不会自动化或执行任何其他操作(例如,要在两个表中插入关于同一用户的数据,我需要使用两个单独的insert语句,外键在某种程度上无助于使其不同或自动) 很好。以下是我想做的:我想使用Sequelize一次插入、更新和检索所有相关表中的数据,但我完全不知道如何做到这一点。例如,如果用户注册,我希望能够在
const User = sequelize.define('user', {
username: Sequelize.STRING,
});
const Address = sequelize.define('add', {
address: Sequelize.STRING,
});
const Designation = sequelize.define('designation', {
designation: Sequelize.STRING,
});
User.hasOne(Address);
User.hasMany(Designation);
sequelize.sync({ force: true })
.then(() => User.create({
username: 'test123',
add: {
address: 'this is dummy address'
},
designations: [
{ designation: 'designation1' },
{ designation: 'designation2' },
],
}, { include: [Address, Designation] }))
.then(user => {
User.findAll({
include: [Address, Designation],
}).then((result) => {
console.log(result);
});
});
在
console.log
中,您将获得所有数据及其要包含在查询中的所有关联模型谢谢!这正是我想要的!:)现在,我将努力解决Sequelize在没有任何明显意义的情况下通过复数/单数化名称给我带来的问题。