[英]Filter data dynamically based on a hierarchical user id in cube.js
我有两个名为 Writers 和 Publications 的表,其中有一个外键publications.writer_id = writers.id
编号(整数) | parent_id(整数) | 角色(可变字符) | 名称(可变字符) | 路径(ltree) |
---|---|---|---|---|
1个 | 行政 | 名字 姓氏 | ||
2个 | 1个 | 编辑 | 匿名 匿名 | 1.2 |
3个 | 2个 | WEB 编辑 | Maisy 挠痒痒 | 1.2.3 |
4个 | 2个 | WEB 编辑 | 杰克豆茎 | 1.2.4 |
5个 | 3个 | WEB 校对员 | 晴天雷 | 1.2.3.5 |
编号(整数) | writer_id (FK) | publication_name (varchar) | 字长(整数) | 发布(日期时间) |
---|---|---|---|---|
1个 | 2个 | 我的第一本杂志 | 6000 | 2019-09-09 09:00:00 |
2个 | 2个 | 我的第二本杂志 | 6000 | 2019-09-16 09:00:00 |
3个 | 3个 | 我的第一篇文章 | 1000 | 2019-09-23 09:00:00 |
4个 | 4个 | 我的第一篇文章 | 1500 | 2019-09-23 09:00:00 |
5个 | 4个 | 我的第二篇 | 600 | 2019-10-01 09:00:00 |
6个 | 5个 | 我的第一件作品 | 600 | 2020-10-01 09:00:00 |
我想在cube.js
Developer Playground 中进行概念验证以显示各种图表。 是否可以根据 user_id 动态过滤,以便他们只能访问等于或在其子树中的内容,即
writers.id=4
) 正在使用该应用程序,他们只能看到自己的文章 ( publications.id in (4,5)
)writers.id=3
) 正在使用该应用程序,他们可以看到他们的出版物和 WEB PROOFREADER 的出版物 ( publications.id in (3,6)
)publications.id=6
)这些是我到目前为止建立的模型
cube(`Writers`, {
sql: `SELECT * FROM public.writers`,
preAggregations: {},
joins: {
Publications:{
sql: `${CUBE}.id = ${Publication}.writer_id`,
relationship: `hasMany`
}
},
measures: {
count: {
type: `count`,
drillMembers: [id, name, created]
}
},
dimensions: {
id: {
sql: `id`,
type: `number`,
primaryKey: true
},
role: {
sql: `role`,
type: `string`,
},
};
cube(`Publications`, {
sql: `SELECT * FROM public.publications`,
preAggregations: {},
joins: {
Writer:{
sql: `${CUBE}.writer_id = ${Writers}.id`,
relationship: `hasOne`
}
},
measures: {
count: {
type: `count`,
drillMembers: [id, name, created]
}
},
dimensions: {
id: {
sql: `id`,
type: `number`,
primaryKey: true
},
wordLength: {
sql: `word_length`,
type: `number`,
},
};
我知道有filters
和segments
,但这些似乎是 static。有什么方法可以传递 writer_id 来动态过滤相关数据吗? (我以前对JS一无所知)
我认为您可以使用 id 过滤器从前端应用程序查询多维数据集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.