画面テーブルと正規テーブルについて

定義

画面テーブル

画面で表示するためのデータを横持ちするテーブル


正規テーブル

データを正規化して持っているテーブル


命名規則

画面テーブル

コントローラ名と同じテーブル名とする


正規テーブル

持っているデータに応じたテーブル名とする


データ作成方法

画面テーブル

  • 画面からデータを保存したときに、テーブルにレコードが追加される
  • 正規テーブルに変更があったときに、リフレッシュ処理をファンクション実行し、画面テーブルを再構築する


正規テーブル

  • アップデート処理をファンクション実行することで画面テーブルから正規テーブルに値を反映する


データ関連性

controller_tables テーブルに、画面テーブルと正規テーブルの関連情報を持たせる

  • 画面テーブル名 ( controller_table_name )
  • 正規テーブル名 ( data_table_name )
  • 最終同期日時 ( last_sync )


データ整合性

規則

複数のユーザーが同時に、同じ画面で、同じデータに対して処理を行おうとした場合、

  • 先にデータを開いたユーザーはすべての処理を実行できる
  • 後から開いたユーザーは参照処理のみ実行できる


実現方法

画面テーブルは locked_switch カラムを持つ

  • 1 = locked
  • 0 = not locked