2

PL/SQLで開発しようとしているアプリケーションについて助けが必要です

基本的に、私のアプリケーションには 3 つの画面があります。「パラメータ画面」「結果画面」「詳細画面」

パラメータ画面 - ユーザーはフォーム内のドロップダウン ボックスからいくつかのパラメータを選択します。次に、送信ボタンをクリックすると、次の画面 (結果画面) に渡されます。

結果画面 - 前の画面から渡されたパラメータを考慮して SQL クエリが実行されます。クエリの結果は、たとえば (姓) でソートされたテーブルに表示されます。以下の結果の例

|ID|EmployeeID|Surname|Date of Birth|
 1  1234       Adam    11-14-1995
 2  5678       Reyes   06-03-1993
 3  9876       Olivers 03-02-1992

次の画面 (詳細画面) には、従業員に関する詳細が表示されます。結果画面と詳細画面の間の遷移は、結果画面内の employee_surname の href リンクをクリックすることで発生します。

したがって、上記の結果表では、姓「Reyes」はクリック可能な Reyes です。

結果から姓をクリックすると、プロシージャ details_screen (上記のリンクを参照) が呼び出され、パラメータ「id」と「emid」を処理してそのプロシージャ内でクエリを実行し、その特定の従業員に関する詳細情報を再度表示します。詳細画面はこんな感じ

ID: 2
EmployeeID: 5678
Surname: Reyes
First Name: Alan
Date of Birth: 06-03-1993
Hobbies: Basketball

パラメータから詳細画面まで全ての画面ができました。ただし、従業員のすべてのレコードを確認するために「結果画面」に戻る必要がないように、「詳細画面」内でレコードのナビゲーションを行いたいと考えています。次のような「詳細画面」内で前と次のナビゲーションを表示したい

ID: 2
EmployeeID: 5678
Surname: Reyes
First Name: Alan
Date of Birth: 06-03-1993
Hobbies: Basketball

<a href="details_screen?id=1&emid=1234">Previous</a> | <a href="details_screen?id=3&emid=9876">Next</a>

それが私が立ち往生しているところです。これを実装する方法がわかりません。例。私はこれの汚い解決策を実装することができましたが、レコードセット内を前後に移動するたびに、結果画面内で使用される同じクエリを実行する必要があります。私のクエリは、これで示したものよりも複雑であり、私の汚い方法を使用すると、パフォーマンスの点で大きな代償が伴います。

クエリを何度も実行せずにこれを行うより効率的な方法はありますか? ユーザーがまだ「詳細画面」内をナビゲートしている間に、クエリを1回実行し、結果を使用してナビゲーションをレンダリングするようなもの次に、ユーザーが最初から開始したときにのみ再度クエリを実行するだけです(パラメーター画面)

PL/SQL の基本を昨日学んだだけで、まだ初心者です。ref_cursor、varray、入れ子になったテーブル、連想配列などについて聞いたことがありますが、実際には理解できず、問題の解決に役立つかどうかもわかりません。そこで、アドバイスをお願いします。事前に感謝し、非常に長い説明と悪い文法について申し訳ありません.

4

1 に答える 1