イベントレコードで時間の冗長性を探すことを繰り返す方法は?

Please_Dont_Bully_Me_SO_Lords

ユースケース:

スケジュールされた公開イベントに登録できるWebページを作成しています。

データベーステーブルは Persons -> Subscriptions -> Events -> Days -> Activities

制限:

この人は、それらのイベントに1日以上の共通のアクティビティがない限り、利用可能なすべてのイベントをサブスクライブできます。

ソリューション:

したがって、ユーザーがイベントにサブスクライブしようとすると、データベースは、このテーブルの時間StartMomentEndMomentフィールドを使用して、同じ日のイベントを探して、既にサブスクライブしている他のアクティブなイベントを繰り返す必要がありDaysます。

方法:

私はOracleを初めて使用します。私はFirebirdとMySQLに慣れており、以前イテレータを使用する必要はありませんでした私はプログラミングコード内でそのチェックの王様をやっただけですが、今はこのロジックをデータベースに入れてプラットフォームから独立させたいと思っています。

コードが乱雑になりすぎたり遅くなりすぎたりしないように、それを行う最も賢い方法は誰か教えてもらえますか?

データ(簡略化):

  Table Persons: Id, name(varchar), identify(varchar), phone(varchar);
  Table Subscriptions: Id, personId, eventId, reg_date(date);
  Table Events: Id, description(string), hours, contacts(string);
  Table Days: Id, eventId, day(date), begin(time), end(time), allday(bool);
  Table Activities: Id, dayId, eventId, begin(time), end(time), duration(0 for allday, or minutes), description(varchar);
です

テーブル内の各レコードを反復処理する場合、最も簡単な方法はfor rc in (select * from mytable) loop end loop;構文を使用することです。これはステートメントの暗黙カーソルです。詳細については、http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/static.htm#CHDBJBJE参照してください。ロジックは次のようになります。

begin
  for rcPersons in (select * from Persons) loop
    for rcSubscriptions in (select * from Subscriptions where personId= rcPersons.Id) loop
       for rcEvents in (select * from Events where id = rcSubscriptions.eventId) loop
          null; --<do some logic here>      
       end loop;
    end loop;
  end loop;
end;

p.s if you provide scripts to create test tables and data it would be easy to find most effective solution. I think it could be done via one SQL, but need more info to be sure

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ベクトルからアイテムを繰り返しpop()するための冗長性の低い方法は何ですか?

分類Dev

より少ない冗長性でこのコードを実行することは可能ですか?

分類Dev

このreactコンポーネントの冗長性を減らす方法はありますか?

分類Dev

コードでNSLayoutConstraintの冗長性を処理する方法は?

分類Dev

ロジックを繰り返した冗長コードを処理する最良の方法は?

分類Dev

コンピュータに損傷を与えることなく、繰り返しの作業をコンピュータに任せることができる最長の時間はどれくらいですか?

分類Dev

冬時間/夏時間の処理日を繰り返すイベント

分類Dev

c ++とboost :: pythonドキュメント間の冗長性を回避する方法は?

分類Dev

どのように私はそれが冗長と呼ばれる複数回を得ることなくTkinterのリサイズイベントにコールバックをバインドすることができますか?

分類Dev

QRコードの冗長性レベルを見積もる方法は?

分類Dev

更新ステートメントの2つのサブクエリ間の冗長性を減らすことはできますか?

分類Dev

djangoイベントの発生期間を繰り返す方法は?

分類Dev

GCCは、配列要素の繰り返しXORに対して冗長コードを生成します

分類Dev

この冗長なコードを最適化する方法は?

分類Dev

内部ループの繰り返し時間でループのbig-Oランタイムを決定することはconstです

分類Dev

Lispコードの冗長性を取り除く方法は?

分類Dev

アーキテクチャ:POJOを汚染することなくモデルを操作するためのベストプラクティス?そして、ボイラープレートのコードをどこでも繰り返すことなく

分類Dev

RxdistinctUntilChangedはイベント間の設定可能な時間の後に繰り返しを許可します

分類Dev

このclojureコードの冗長性を削除するにはどうすればよいですか?

分類Dev

継承されたクラステンプレートでパブリックメンバーの不可視性とソースコードの膨張/繰り返しを回避するより良い方法は?

分類Dev

Pythonパンダで時間ベースのイベントを時間テンプレートに分割する方法はありますか?

分類Dev

Googleカレンダーのイベントの繰り返しで複数の例外を使用する方法

分類Dev

コマンドラインでコマンドを繰り返すこのvimマッピングを改善することは可能ですか?

分類Dev

リポジトリ内のコードの冗長性を削除する方法

分類Dev

複数のターゲットでCMakeコードを繰り返すことは避けてください

分類Dev

Vueは、このHTMLテンプレートを開発モードでコンパイルするのに非常に時間がかかります

分類Dev

一部のコンポーネントに繰り返し書き込むことなくディレクティブをインポートする方法

分類Dev

JQueryでコードの繰り返しを回避する方法は?

分類Dev

特定の時間で数値を繰り返す方法は?

Related 関連記事

  1. 1

    ベクトルからアイテムを繰り返しpop()するための冗長性の低い方法は何ですか?

  2. 2

    より少ない冗長性でこのコードを実行することは可能ですか?

  3. 3

    このreactコンポーネントの冗長性を減らす方法はありますか?

  4. 4

    コードでNSLayoutConstraintの冗長性を処理する方法は?

  5. 5

    ロジックを繰り返した冗長コードを処理する最良の方法は?

  6. 6

    コンピュータに損傷を与えることなく、繰り返しの作業をコンピュータに任せることができる最長の時間はどれくらいですか?

  7. 7

    冬時間/夏時間の処理日を繰り返すイベント

  8. 8

    c ++とboost :: pythonドキュメント間の冗長性を回避する方法は?

  9. 9

    どのように私はそれが冗長と呼ばれる複数回を得ることなくTkinterのリサイズイベントにコールバックをバインドすることができますか?

  10. 10

    QRコードの冗長性レベルを見積もる方法は?

  11. 11

    更新ステートメントの2つのサブクエリ間の冗長性を減らすことはできますか?

  12. 12

    djangoイベントの発生期間を繰り返す方法は?

  13. 13

    GCCは、配列要素の繰り返しXORに対して冗長コードを生成します

  14. 14

    この冗長なコードを最適化する方法は?

  15. 15

    内部ループの繰り返し時間でループのbig-Oランタイムを決定することはconstです

  16. 16

    Lispコードの冗長性を取り除く方法は?

  17. 17

    アーキテクチャ:POJOを汚染することなくモデルを操作するためのベストプラクティス?そして、ボイラープレートのコードをどこでも繰り返すことなく

  18. 18

    RxdistinctUntilChangedはイベント間の設定可能な時間の後に繰り返しを許可します

  19. 19

    このclojureコードの冗長性を削除するにはどうすればよいですか?

  20. 20

    継承されたクラステンプレートでパブリックメンバーの不可視性とソースコードの膨張/繰り返しを回避するより良い方法は?

  21. 21

    Pythonパンダで時間ベースのイベントを時間テンプレートに分割する方法はありますか?

  22. 22

    Googleカレンダーのイベントの繰り返しで複数の例外を使用する方法

  23. 23

    コマンドラインでコマンドを繰り返すこのvimマッピングを改善することは可能ですか?

  24. 24

    リポジトリ内のコードの冗長性を削除する方法

  25. 25

    複数のターゲットでCMakeコードを繰り返すことは避けてください

  26. 26

    Vueは、このHTMLテンプレートを開発モードでコンパイルするのに非常に時間がかかります

  27. 27

    一部のコンポーネントに繰り返し書き込むことなくディレクティブをインポートする方法

  28. 28

    JQueryでコードの繰り返しを回避する方法は?

  29. 29

    特定の時間で数値を繰り返す方法は?

ホットタグ

アーカイブ