Sails.js水线:用户、角色、任务模型,请给我一些关于最终模型设计的建议
这个问题可能与sails.js waterline中的数据库模式设计有关 一个任务需要记录用户的不同角色。例如,一个Sails.js水线:用户、角色、任务模型,请给我一些关于最终模型设计的建议,sails.js,waterline,Sails.js,Waterline,这个问题可能与sails.js waterline中的数据库模式设计有关 一个任务需要记录用户的不同角色。例如,一个任务需要知道谁是该任务中的fooousers和barUsers。处理这个问题的最佳方法是什么?(foo和bar对于用户来说是不同的角色) 更多上下文 用户将具有不同的角色s 用户的角色将来可能会发生变化 一个用户在一个任务中只能有一个角色 特定任务中用户的角色永远不会改变 一个任务将涉及许多用户 所有任务都是相同的类型 角色总数不会更改 例如: 一个任务有四个用户:UserA带
任务
需要知道谁是该任务中的fooousers
和barUsers
。处理这个问题的最佳方法是什么?(foo和bar对于用户来说是不同的角色)
更多上下文
将具有不同的用户
s李>角色
- 用户的角色将来可能会发生变化李>
- 一个
在一个用户
中只能有一个任务
角色
- 特定
中任务
的用户
永远不会改变李>角色
- 一个
将涉及许多用户李>任务
- 所有任务都是相同的类型李>
- 角色总数不会更改
UserA
带Role1
,UserB
带Role2
,UserC
带Role3
,UserD
带Role1
将来,UserA
可能拥有Role2
和Role3
。但是,不会影响UserA
在上述任务中的角色
我的最终设计
//User.js
属性:{
任务:{
集合:“任务”,
via:'用户'
},
角色:{
集合:“角色”,
via:'用户'
},
用户任务角色:{
集合:“userTaskRole”,
via:'用户'
}
}
//Task.js
属性:{
用户:{
集合:“用户”,
via:“任务”
},
用户任务角色:{
集合:“userTaskRole”,
via:‘任务’
}
}
//Role.js
属性:{
用户:{
集合:“用户”,
via:‘角色’
},
用户任务角色:{
集合:“userTaskRole”,
via:‘角色’
}
}
//UserTaskRole.js
属性:{
任务:{
模型:“任务”
},
用户:{
模型:“用户”
},
角色:{
模型:“角色”
}
}
我经常更新这个问题。以上是我的最终设计。请给我一些反馈,无论这是好是坏,有没有更好的设计模式
谢谢。您需要为您的用例提供更多上下文。在不知道你为什么要做你想做的事情的情况下,我可以提供这个答案 在任务中使用列区分foo/bar,并在单个列中引用用户,如下所示:
// User.js
attributes:{
tasks: {
collection: "task",
via: 'users'
}
}
// Task.js
attributes: {
Users: {
collection: "user",
via: "tasks"
},
type: {
type: 'string',
enum: ['foo','bar']
}
}
我是新来的。对最后两条评论感到抱歉。我刚刚发现我甚至可以删除评论。我删除了它们。我已经更新了问题,并在问题末尾添加了更多上下文。希望你这次能理解我的情况。非常感谢您的帮助和回复。我再次更新了我的问题,并添加了我的两个模型设计。我期待着你的建议。非常感谢。在我的情况下,您当前的答案不起作用,因为任务无法区分用户是此任务中的哪个角色(foo或bar)。所有任务都是相同的类型。请检查问题中我的PS1和PS2以了解更多上下文。非常感谢你的帮助。