私は Web サイトをコーディングしていますが、顧客は現在、さまざまな役割 (仕様で指定されているよりも多くの役割) を望んでいます。そのため、各ユーザーに表示する内容を減らす必要があります。
たとえば、誰かがデータ入力ユーザーの場合、プライベート プロジェクトも見ることができます。
したがって、テーブル PROJECTS には、プロジェクトの状態を示す STATE という属性があります。
もしそれが:
- 承認待ち、
- アーカイブ済み、
- 消去、
- 公衆、
- プライベート
私のコードには、多くの SQL クエリSELECT * FROM PROJECT LIKE 'smth'
、またはSELECT * FROM PROJECT WHERE COUNTRY=smth
プロジェクトを返す必要がある他の多くのクエリがあります。
したがって、現在ログインしているユーザーに応じて、テーブルの各行に true または false を返すテーブル PROJECT の計算値が必要です。
したがって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