Sequelize - return 规范化数据

Sequelize - return normalized data

Sequelize 似乎对 returned 数据进行了非规范化。这里,user 嵌入在 task:

[{
  "name": "A Task",
  "id": 1,
  "userId": 1,
  "user": {
    "name": "John Doe",
    "id": 1
  }
}]

但是,我发现规范化数据更容易处理(尤其是在深度嵌套对象的情况下),并且我希望尽可能避免使用 normalizr。

是否可以以某种方式要求对 return 规范化数据进行续集?


所需数据的示例:

{
  "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'