SlotKeeper 設計と品質

update_resource query

001_update_resources_control_version.sql

SQL種別

UPDATE

SQLの概要

同一資源の予約作成・取消と競合させるため、資源の内部制御版を進めて現在値を取得する。

利用するテーブル

  • resources

引数

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
resources resource_id resource_id 資源ID。 VARCHAR(36) no

戻り値

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
resources resource_id resource_id 資源ID。 VARCHAR(36) no
resources active active 新規予約を受け付けるかどうか。 BOOLEAN no
resources row_version row_version 利用者に公開する楽観ロック用の行バージョン。 INT no

条件

  • WHERE
    • resource_id = @resource_id

002_select_reservations.sql

SQL種別

SELECT

SQLの概要

資源の無効化可否を判定するため、開始前の確定予約の件数を取得する。

利用するテーブル

  • reservations

引数

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
reservations resource_id resource_id 予約対象の資源ID。 VARCHAR(36) no
reservations start_at now 予約開始日時。UTCで保存する。 TIMESTAMPTZ no

戻り値

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
- future_reservation_count future_reservation_count - int no

条件

  • WHERE
    • reservations.resource_id = @resource_id
    • AND reservations.status = 'confirmed'
    • AND reservations.start_at > @now

003_update_resources.sql

SQL種別

UPDATE

SQLの概要

資源の名前・説明・種別・有効状態を更新し、公開版を1つ進める。

利用するテーブル

  • resources

引数

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
resources name name 資源名。空白除去後1〜100文字。 VARCHAR(100) no
resources description description 資源の説明。0〜1,000文字。 VARCHAR(1000) no
resources kind kind 資源種別。roomまたはequipment。 VARCHAR(20) no
resources active active 新規予約を受け付けるかどうか。 BOOLEAN no
resources resource_id resource_id 資源ID。 VARCHAR(36) no

戻り値

DDLテーブル DDL項目 SQL項目 日本語名 型 nullable
resources resource_id resource_id 資源ID。 VARCHAR(36) no
resources name name 資源名。空白除去後1〜100文字。 VARCHAR(100) no
resources description description 資源の説明。0〜1,000文字。 VARCHAR(1000) no
resources kind kind 資源種別。roomまたはequipment。 VARCHAR(20) no
resources active active 新規予約を受け付けるかどうか。 BOOLEAN no
resources row_version row_version 利用者に公開する楽観ロック用の行バージョン。 INT no

条件

  • WHERE
    • resource_id = @resource_id