我正在尝试创建一个权限系统,其中有一个默认权限表,以及一个存储这些权限的覆盖值的表。
我似乎无法弄清楚正确的关联以及返回完整权限集的逻辑。
// permissions
id | key | value
________________
1 | 'a' | 0
2 | 'b' | 2
3 | 'c' | 5
// overrides
id | key | value
________________
3 | 'c' | 10
// results
id | key | value
________________
1 | 'a' | 0
2 | 'b' | 2
3 | 'c' | 10
有人可以帮忙吗?
答案 0 :(得分:0)
这里是一个建议,假设表可以用id
连接。 (如果必须由key
加入,则关联将有所不同。)
Permissions.belongsTo(Overrides);
Persmissions.findAll({
raw: true,
include: {
model: Overrides,
required: false,
attributes: [['value', 'override_val' ]]
},
attributes: [
'id', 'key', 'value',
[Sequelize.literal('case when override.value is not null then override.value else value end'), 'final_value']
]
});
输出同时显示值和派生的最终值(因此您可以验证其是否有效)。 HTH