0

私は Web サイトをコーディングしていますが、顧客は現在、さまざまな役割 (仕様で指定されているよりも多くの役割) を望んでいます。そのため、各ユーザーに表示する内容を減らす必要があります。

たとえば、誰かがデータ入力ユーザーの場合、プライベート プロジェクトも見ることができます。

したがって、テーブル PROJECTS には、プロジェクトの状態を示す STATE という属性があります。

もしそれが:

  1. 承認待ち、
  2. アーカイブ済み、
  3. 消去、
  4. 公衆、
  5. プライベート

私のコードには、多くの 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
4

0 に答える 0