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