Newer
Older
client_dwatch / docs / handoff / analysis / table-definitions-01-master.md

【注記】 TeamWorks 提供のテーブル定義書(全29テーブル)を prisma/schema.prisma 手書き作成(D-056)のために転記した記録です。3分割の1つです。 当時の記録であり、現行方針ではありません。 定義書には誤記・廃止済み項目が含まれることが実DDL照合で判明しており、以後は実DDLを正とします(D-059)。 現在のスキーマの正は prisma/schema.prisma、経緯は docs/decisions.md と docs/handoff.md を参照してください。

groups(グループ)

役割: グループ情報を管理する。新規追加 UI: 要 備考: 新規追加 UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto increment
2 グループ名 group_name varchar 100 ○
3 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
4 登録日時 created_at timestamp ○ システム日付
5 更新日時 updated_at timestamp ○ システム日付 テーブル更新時, システム日付を適用
6 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_groups_id | primary key | id |

(インデックス欄2〜5は空欄)


makers(メーカー)

役割: メーカー情報を管理する。新規追加 UI: 要, (今回の対応では)設定ファイルで代替する 備考: 新規追加 UI: 要, (今回の対応では)設定ファイルで代替する

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto increment
2 メーカー名 maker_name varchar 100 ○
3 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
4 登録日時 created_at timestamp ○ システム日付
5 更新日時 updated_at timestamp ○ システム日付 テーブル更新時, システム日付を適用
6 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_maker_id | primary key | id |

(インデックス名称は「pk_makerid」で、単数形「maker」。他テーブルの「pk<テーブル名(複数形)>_id」という命名規則と異なる点に注意。インデックス欄2〜5は空欄)


devices(機器)

役割: 機器情報を管理する。新規追加 UI: 要 modelは言語で予約されていた為, テーブル名はdevicesとし, カラムではmodelを使用する. 備考: 新規追加 UI: 要 modelは言語で予約されていた為, テーブル名はdevicesとし, カラムではmodelを使用する.

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto increment
2 メーカーID maker_id unsigned tinyint ○
3 機種名 model_name varchar 100 ○
4 型番 model_number varchar 100
5 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
6 登録日時 created_at timestamp ○ システム日付
7 更新日時 updated_at timestamp ○ システム日付 テーブル更新時, システム日付を適用
8 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_mode_id | primary key | id |

(インデックス名称は定義書のまま「pk_mode_id」と記載されている(devicesやmodelではなくmode)。誤記の可能性があるがそのまま転記。maker_idはmakersテーブルへの参照と思われる列だが、データ型は「unsigned tinyint」、キー欄は空欄でfk指定なし、インデックス欄にもmaker_idの外部キー行は無い。インデックス欄2〜5は空欄)


customers(顧客)

役割: 顧客情報を管理する。 UI: 要 備考: UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 グループID group_id unsigned bigint ○ 0 fk 追加
3 顧客名 customer_name varchar 400 ○
4 郵便番号 zip_cd varchar 8 ○
5 都道府県 prefecture_cd tinyint ○
6 都道府県名 prefecture_name varchar 16 ○
7 住所1 addr1 varchar 800 ○
8 住所2 addr2 varchar 800
9 代表電話番号 phone varchar 16
10 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
11 登録日時 created_at timestamp ○ システム日付
12 更新日時 updated_at timestamp ○ システム日付
13 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_customers_id | primary key | id | | fk_customers_group_d | forigne key | group_id |

(インデックス名称「fk_customers_group_d」は定義書のまま。group_idのfk("group_d")の表記であり、他の外部キー命名(例: fk_facilities_customer_id)と異なりカラム名の末尾が省略された形になっている。誤記の可能性があるがそのまま転記。"forigne key"は原文ママ(foreignのスペルミス)。prefecture_cdはcustomersでは「tinyint」(unsignedなし)だが、facilitiesの同名カラムは「unsigned tinyint」であり型が異なる。インデックス欄3〜5は空欄)


facilities(施設)

役割: 施設情報を管理する。 UI: 要 備考: UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 顧客ID customer_id unsigned bigint ○ fk
3 店舗コード shop_id varchar 20 ○ 0 PUDU Cloud で使用しているshop_idを格納する. 追加
4 施設名 facility_name varchar 400 ○
5 郵便番号 zip_cd varchar 8 ○
6 都道府県 prefecture_cd unsigned tinyint ○
7 都道府県名 prefecture_name varchar 16 ○
8 住所1 addr1 varchar 800 ○
9 住所2 addr2 varchar 800
10 連絡先電話番号 phone varchar 16
11 連絡先メールアドレス email varchar 100
12 責任者名 manager_name varchar 100 追加
13 担当者名 charger_name varchar 100 カラム名変更
14 契約モジュール contract varchar 10 ○ 0000000000 各サービス毎にフラグとして機能する. D-Securityを1桁目, D-Watchを2桁目とし, 契約済(有効)なサービスを1とする. 例えばD-Security, D-Watchを契約している場合は次のように表現される. 例) 1100000000
15 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
16 登録日時 created_at timestamp ○ システム日付
17 更新日時 updated_at timestamp ○ システム日付
18 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_facilities_id | primary key | id | | fk_facilities_customer_id | forigne key | customer_id |

("forigne key"は原文ママ。店舗コード(shop_id)は必須○かつ初期値0の指定だが、データ型はvarchar(20)であり、初期値「0」が文字列"0"を意味するのか数値的な0を意味するのか定義書からは判断できない。読み取れず。インデックス欄3〜5は空欄)


sections(エリア)

役割: エリア情報を管理する。 UI: 要 備考: UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk
3 エリア名 section_name varchar 100 ○
4 フロア名 floor_name varchar 100
5 区画図(ファイルパス) layout varchar 200 エリア図(jpeg/pngを想定)のファイルパスを格納する. 現時点では未使用.
6 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
7 登録日時 created_at timestamp ○ システム日付
8 更新日時 updated_at timestamp ○ システム日付
9 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_sections_id | primary key | id | | fk_sections_facility_id | forigne key | facility_id |

("forigne key"は原文ママ。インデックス欄3〜5は空欄)


controls(D-S制御盤)

役割: D-S制御盤情報を管理する。 UI: 要 備考: UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
(空欄) 管理ID id unsigned bigint ○ pk auto increment
1 製品(管理)番号 serial_number varchar 100 ○ アプリケーションで一意性を確保する(deleted_atがあるため)
2 パスワード password varchar 255 ○
3 施設ID facility_id unsigned bigint ○ (空欄)
4 エリアID section_id unsigned bigint ○ fk
5 状態 status unsigned tinyint ○ 0 0: 正常, 1: 異常 (D-S制御盤の生死報告で正常/異常切替)
6 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
7 トークン記録 remember_token varchar 100 トークン認証で使用
8 登録日時 created_at timestamp ○ システム日付
9 更新日時 updated_at timestamp ○ システム日付 テーブル更新時, システム日付を適用
10 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時
11 認証日時 verified_at timestamp 認証日時を格納

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_controls_id | primary key | id | | fk_controls_facility_id | forigne key | facility_id | | fk_controls_section_id | forigne key | section_id |

("forigne key"は原文ママ。管理ID(id)行の#番号は定義書上でも空欄。矛盾点: facility_idはカラム定義表のキー欄では空欄(fk指定なし)だが、インデックス欄にはfk_controls_facility_idという外部キーが定義されており、両者が食い違っている。またこのテーブルの論理テーブル名セル自体は「D-S制御盤」という値の左に本来入るはずの「[merged] 論理テーブル名」ラベルが無く空欄になっている(他の9テーブルには「[merged] 論理テーブル名」ラベルがある)。インデックス欄4〜5は空欄)


robots(清掃ロボット)

役割: 清掃ロボット情報を管理する。 UI; 要 備考: UI; 要(原文ママ、コロンでなくセミコロン)

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk 追加
3 エリアID section_id unsigned bigint ○ fk
4 機種ID device_id unsigned bigint ○ 0 fk 追加
5 製品(管理)番号 serial_number varchar 20 ○
6 タスクID task_id varchar 20 削除
7 バージョン version varchar 20 削除
8 ロボット名 robot_name varchar 100
9 状態 status smallint ○ 0 Pudu API仕様を参照
10 清掃状態 clean_status unsigned tinyint ○ 0
11 清掃率 clean_ratio unsigned tinyint ○ 0
12 バッテリー battery unsigned tinyint ○ 100
13 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
14 登録日時 created_at timestamp ○ システム日付
15 更新日時 updated_at timestamp ○ システム日付
16 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_robots_id | primary key | id | | fk_robots_facility_id | forigne key | facility_id | | fk_robots_section_id | forigne key | section_id | | fk_robots_device_id | forigne key | device_id |

("forigne key"は原文ママ。9番「状態(status)」の型は「smallint」であり、unsignedが付いていない点が他のunsigned tinyint系フラグ列と異なる(原文ママ、読み替えず転記)。6番task_id・7番versionは備考「削除」と記載されているが、同一項目がrobot_task_versionsテーブルにtask_id/versionとして新設されている(テーブル間の役割移動と思われるが定義書に明記なし)。インデックス欄5は空欄)


robot_task_versions(清掃ロボットのタスク・バージョン)

役割: 清掃ロボットに付与されたタスク・バージョン情報を管理する. UI: 要 備考: UI: 要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 ロボットID robot_id unsigned bigint ○ fk
3 スケジュールID clean_schedule_id unsigned bigint ○ fk
4 タスクID task_id varchar 20
5 バージョン version varchar 20
6 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
7 登録日時 created_at timestamp ○ システム日付
8 更新日時 updated_at timestamp ○ システム日付
9 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_robot_task_version_id | primary key | id | | fk_robots_task_version_robot_id | forigne key | robot_id | | fk_robots_task_version_clean_schedule_id | forigne key | clean_schedule_id |

("forigne key"は原文ママ。clean_schedule_idの参照先と思われるclean_schedulesテーブルは今回の担当10テーブルの範囲外(定義書後方に別途記載あり)。インデックス欄4〜5は空欄)


section_robot_statuses(エリア毎の清掃ロボットの状態)

役割: エリア毎の清掃ロボットの状態(エリアに紐づくロボット全て)を管理する。 ※当初D-S制御盤-清掃ロボットの関係でシステムが構築されていた為, 物理名をcontrol_robot_statusesとしていた. テーブル名変更 UI: 不要 備考: ※当初D-S制御盤-清掃ロボットの関係でシステムが構築されていた為, 物理名をcontrol_robot_statusesとしていた. テーブル名変更 UI: 不要

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk
3 エリアID section_id unsigned bigint ○ fk
4 ロボット状態 robot_status smallint ○ 0 配下のrobots.statusからルールに則り値を格納する. 現時点では未確定.
5 実施日(状態変更日) indicatived_at timestamp 状態(status)が変更された日時
5 清掃状態 clean_status unsigned tinyint ○ 0
6 清掃率 clean_ratio unsigned tinyint ○ 0 清掃完了率を100分率で表す
7 登録日時 created_at timestamp ○ システム日付
8 更新日時 updated_at timestamp ○ システム日付
9 削除日時 deleted_at timestamp 有効: null / 無効: 無効を設定した日時

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_section_robot_statuses_id | primary key | id | | fk_section_robot_statuses_facility_id | forigne key | facility_id | | fk_section_robot_statuses_section_id | forigne key | section_id |

("forigne key"は原文ママ。矛盾点: #番号「5」が「実施日(状態変更日) indicatived_at」と「清掃状態 clean_status」の2行に重複して振られている(定義書のまま。以降の6, 7, 8, 9は「清掃状態」の次から続いており、番号がひとつずれた状態になっている可能性がある)。「実施日(状態変更日)」の物理カラム名は「indicatived_at」と記載されており、一般的な英語表現(indicated_at)と異なる綴りだが原文ママ転記。ロボット状態(robot_status)の備考に「現時点では未確定」と明記されており、算出ルールが未確定である旨の注記あり。インデックス欄4〜5は空欄)