此问题可能与sails.js waterline中的数据库架构设计有关。
一项任务需要记录用户的不同角色。例如,Task
需要知道此任务中的fooUsers
和barUsers
是谁。处理这个问题的最佳方法是什么? (foo和bar是用户的不同角色)
User
将有不同的Role
。 User
只有一个Role
只有一个Task
。Role
中User
的{{1}}永远不会改变。 Task
会涉及很多用户。 例如:
一项任务有四个用户:Task
UserA
,Role1
UserB
,Role2
UserC
,Role3
与UserD
。
将来,Role1
可能会UserA
和Role2
。但是不会影响Role3
在上述任务中的作用。
UserA
我经常更新这个问题。以上是我的最终设计。请给我一些反馈,无论这是好还是坏,有没有更好的设计模式?
感谢。
答案 0 :(得分:0)
您需要为您的用例提供更多上下文。在不知道你为什么要做你想做的事情的情况下,我可以提供这个答案。
使用任务中的列区分foo / bar,并在单个列中引用用户,如下所示:
// User.js
attributes:{
tasks: {
collection: "task",
via: 'users'
}
}
// Task.js
attributes: {
Users: {
collection: "user",
via: "tasks"
},
type: {
type: 'string',
enum: ['foo','bar']
}
}