0

我正在编写一个网站,客户现在想要不同的角色(比规范中指定的角色更多)。所以现在我必须向每个用户展示更少的内容。

例如,如果某人是数据输入用户,他也可以查看私人项目。

因此,在我的表 PROJECTS 中,我有一个名为 STATE 的属性,其中显示了项目的状态。

如果是:

  1. 待审批,
  2. 存档,
  3. 删除,
  4. 上市,
  5. 私人的

在我的代码中,我有很多 SQL 查询SELECT * FROM PROJECT LIKE 'smth'SELECT * FROM PROJECT WHERE COUNTRY=smth很多其他需要返回项目的查询。

所以我想要的是表 PROJECT 上的计算值,它将根据当前登录的 USER对表的每一行返回 true 或 false 。

所以我可以打电话SELECT * FROM PROJECT LIKE 'smth' AND computed_attr = TRUE给我的每一个查询。

问题是我只知道sql上的SCALAR_FUNCTIONS,你只能在当前表上使用参数。

当用户登录并且必须运行查询时,我希望将此 USER_ROLE_ID 作为参数,以便函数可以选择显示或不显示表的当前行。

SELECT * 
FROM PROJECT 
LIKE 'smth' AND scalarFunction(USER_ROLE_ID) = TRUE
4

0 回答 0