sequelize.js - Sequelize - 返回标准化数据
问题描述
Sequelize 似乎使返回的数据非规范化。在这里, auser
嵌入在 a 中task
:
[{
"name": "A Task",
"id": 1,
"userId": 1,
"user": {
"name": "John Doe",
"id": 1
}
}]
但是,我发现规范化数据更容易处理(尤其是在深度嵌套对象的情况下),并且我想尽可能避免使用 normalizr。
是否有可能要求 sequelize 返回标准化数据?
所需数据的示例:
{
"tasks": {
"1":{
"id": 1,
"name": "A Task",
"user": 123
}
},
"users": {
"123":{
"name": "John Doe",
"id": 123
}
}
}
解决方案
Sequelize 不能做这样的标准化。您应该请求所有任务,然后让用户在单独的查询中从检索到的任务中获取他们的 ID。在 SQL 中,如果您加入任务和用户表,如果某些任务具有相同的用户,您还将获得重复用户。
task_id,user_id,user_name
1,1,'John Dow'
2,1,'John Dow'
3,2,'John Smith'
推荐阅读
- css - CSS网格显示一排4列或2行2列
- javascript - 如何以闪亮的方式以编程方式转到 HTML 锚点?
- excel - 浏览多个工作表时,注释语句不起作用
- azure-devops - 发布多个项目 - AzureDevOps
- azure - Azure Devops - 启用对 keyvault 的访问
- r - R中的选择性替换字符串
- javascript - 如何在jquery中使用它的id向td添加宽度
- sql - 带有 GROUP BY 的 SQL MIN() 选择其他列
- javascript - 如何在 Discord 中复制 ID 搜索功能?
- python - Keras 对多输入多输出建模:如何确定输入和输出的多或非多场景