0

ログインに認証が必要なOracle apexレジストリデータベースがあります。これは正常に機能します。ユーザーの認証に使用されるテーブルは「tuser」と呼ばれ、このテーブルにはユーザー名、パスワード、部門があります

3つの例は次のとおりです

username           password               department
x                     123                    home
y                     123                    home
z                     123                    work

私の問題は、クエリで :appuser を使用しているため、各ユーザーがログインすると、それぞれの注文が表示されますが、ユーザーに部門に関連する注文も表示する必要があります。

XYには、それぞれの注文だけでなく「自宅」の注文も表示し、 Zには、彼が別の部門からの注文であることを確認して、彼の注文のみを表示したいと考えています。

互いにリンクされている 3 つのテーブルがあります。

 table 1- Registry         Table 2- Outgoing       table 3-Tuser

  filenuber            filenumber                    username
  filename             department                   department 
                       requestedby

これらは重要なフィールドです。

select OUTGOING.FILENUMBER as FILENUMBER,
REGISTRY.FILENAME as FILENAME,
OUTGOING.DEPARTMENT as DEPARTMENT,

from REGISTRY REGISTRY,
OUTGOING OUTGOING,
TUSER TUSER 
where REGISTRY.FILENUMBER(+) =OUTGOING.FILENUMBER
and OUTGOING.DEPARTMENT(+) =TUSER.department
and outgoing.requestby (+) = TUSER.username

これは私が試したものですが、すべてのユーザーにデータが表示されます。私が追加する場合

select OUTGOING.FILENUMBER as FILENUMBER,
REGISTRY.FILENAME as FILENAME,
OUTGOING.DEPARTMENT as DEPARTMENT,

from REGISTRY REGISTRY,
OUTGOING OUTGOING,
TUSER TUSER 
where REGISTRY.FILENUMBER(+) =OUTGOING.FILENUMBER
and OUTGOING.DEPARTMENT(+) =TUSER.department
and outgoing.requestby (+) = TUSER.username
AND outgoing.Department  =:APP_USER

これは、 xが要求を行い、yが同じ部門に属しているにもかかわらず、xだけが彼の要求を表示するわけではないことを意味します。

私が取得したいのは、Xが要求を行ったときに、 Yがその要求をしなかったとしても、Yがそれを見る必要があるということです。これは、Yが同じ部門に属しているためです。

4

1 に答える 1