私の要件を説明しようとしますが、少し複雑です。キーと日付(オラクル)に応じてビューを作成
日付に関するキーを含むメッセージを保存したいと思います。 dateX
とdateY
から有効であるdate1
、たとえばため 、IはdateX2
とdateY2
から有効である、key 1
とdate2
ためのメッセージtext1
を保存したいと思い、私はこれにkey 1
とで、メッセージtext2
を保存したいと思います。
このため、私は複合キー(idとVALID_FROM)と、次の表を作成した
messages_table:
ID msg valid_from valid_to
1 text1 01.01.2000 31.12.2001
1 text2 01.01.2002 31.12.2003
2 text3 01.01.2000 31.12.2001
2 text4 01.01.2002 31.12.2003
3 text5 31.12.2001 31.12.2001
3 text6 01.01.2002 31.12.2003
..
...
100 ..........
今はに応じて、適切なテキストメッセージが表示され、このmessages_tableにビュー表を作成したいですvalid_from日付とID。 valid_fromに応じてテキストメッセージを選択するために、私はこのようなものを、01.01.1999と01.02.2000の間のvalid_fromのどこかで使用します。 メッセージがたくさんあるので(1から100まで)、IDを使ってビューの行を制限する必要があります(IDが(1,2,3)の場合はこれも同様です)。
ビューは次のようになります。
CREATE OR REPLACE VIEW messages_view(id, msg)
AS
SELECT id,
id
|| ' '
|| msg
FROM messages_table
WHERE java_function.get_date BETWEEN valid_from AND valid_to
AND id IN (1,2,22,32);
これは、(1,2,22,32)であるVALID_FROMとVALID_TOとキーの間のメッセージとビューを作成します。
ここで、問題/要件は、指定されたdate
に応じて行を選択する必要があることです。例は、01.01.2000 and 31.12.2001
間の日のために、私はのは(1,3,55)
を言わせてのキーを選択する必要があるだろうとdate
が01.01.2002 and 31.12.2003
間 あるとき、私は、この要件を満たすための視野を調整する方法
(1,20,30)
のキーを選択する必要がありますか?
さらなるテーブルを作成せずにこの要件を満たすためのよりよい方法があるかもしれませんか? –
別のマッピングを保持しない場合、日付とキーのマッピングを変更するたびに、ビューを変更して再作成する必要があります。マッピングが変更されたときとそうでない場合、ビューを再作成する必要はありません。それに応じて更新されます。 –