Newer
Older
client_dwatch / docs / handoff / analysis / table-definitions-02-clean-error.md

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

異常・セキュリティ・清掃系 10テーブル 転記(担当: 11〜20番目)

出典: TeamWorks テーブル定義書(fileContent, 763行)のうち 262〜528行目。


robot_error_reports(清掃ロボット異常報告)

役割: エリア/タイムテーブル毎の清掃ロボットの異常情報 新規追加 UI: 要(Request) 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id varchar 50 ○ pk 管理ID, エラーIDのいずれかで一意性を確保できるのであれば, いずれかを削除する
2 障害ID error_id varchar 50 ○
3 施設ID facility_id unsigned bigint ○ fk
4 エリアID section_id unsigned bigint ○ fk
5 ロボットID robot_id unsigned bigint ○ fk
6 タイムテーブルID clean_timetable_id unsigned bigint 要確認. 清掃タイムテーブルに該当する情報がない場合, 登録しないでよいのか.
7 製品(管理)番号 serial_number varchar 50 ○
8 製品コード product_code varchar 50
9 機器バージョン hardware_version varchar 50
10 ソフトウェアバージョン software_version varchar 50
11 OSバージョン os_version varchar 50
12 障害レベル error_level varchar 20 ○
13 障害種別 error_type varchar 100 ○
14 障害詳細 error_detail text ○
15 状態 status unsigned tinyint ○ 0 0: 未対応, 1:対応中, 2:対応済
16 備考 comment text
17 発生日時 errored_at datetime ○
18 対応開始日時 responsed_at datetime 状態を対応中(1)に変更した日時を格納する
19 対応完了日時 resolved_at datetime 状態を対応済(2)に変更した日時を格納する
20 登録日時 created_at timestamp ○ システム日付
21 更新日時 updated_at timestamp ○ システム日付

インデックス: | 名称 | タイプ | 対象カラム | 備考 | |---|---|---|---| | pk_robot_error_reports_id | primary key | id | もしくはid, report_id の2カラムで主キーを定義する. | | fk_robot_error_reports_facility_id | forigne key | facility_id | | | fk_robot_error_reports_section_id | forigne key | section_id | | | fk_robot_error_reports_robot_id | forigne key | robot_id | |


robot_instruct_histories(清掃ロボット指示履歴)

役割: エリア毎の清掃ロボットへの指示回数(履歴)。 UI: 不要 備考: 補足として次の一文が記載されている。「※当初D-S制御盤-清掃ロボットの関係でシステムが構築されていた為, 物理名をcontrol_robot_instruct_historiesとしていた」

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 ロボットID robot_id unsigned bigint ○ fk
3 指示内容 instruct unsigned tinyint ○ idx 1: 清掃開始, 3: 清掃一時停止, 4: 清掃キャンセル
4 登録日時 created_at timestamp ○ システム日付

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_robot_instruct_histories_id | primary key | id | | fk_robot_instruct_histories_robot_id | forigne key | robot_id | | idx_robot_instruct_histories_instruct | index | instruct |


control_reports(D-S制御盤正常稼働報告)

役割: D-S制御盤の正常稼働報告を管理する。 UI: 要(Request) 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk 追加
3 エリアID section_id unsigned bigint ○ fk
4 制御デバイスID control_id unsigned bigint ○ fk
5 製品(管理)番号 sireal_number varchar 100 ○
6 報告日時 reported_at timestamp ○ システム日付
7 登録日時 created_at timestamp ○ システム日付
8 更新日時 updated_at timestamp ○ システム日付

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_control_reports_id | primary key | id | | fk_control_reports_facility_id | forigne key | facility_id | | fk_control_reports_section_id | forigne key | section_id | | fk_control_reports_serial_number | forigne key | serial_number |

※定義書原文どおり。カラム5の物理名は「sireal_number」(serial ではなく sireal の綴り)で、インデックス4の対象カラムは「serial_number」と記載されており、綴りが一致していない(原文ママ)。


control_error_histories(制御デバイス異常履歴)

役割: D-S制御盤の異常発生履歴を管理する。 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 control_id unsigned bigint ○ fk
5 状態 status unsigned tinyint ○ 0 0: 未対応, 1: 対応中, 2:対応済
6 備考 comment text
7 発生日時 occurred_at datetime ○ システム日付
8 対応開始日時 responsed_at datetime 状態を対応中(1)に変更した日時を格納する
9 対応完了日時 resolved_at datetime 状態を対応済(2)に変更した日時を格納する

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_control_error_histories_id | primary key | id | | fk_control_error_histories_facility_id | foreign key | facility_id | | fk_control_error_histories_section_id | foreign key | section_id | | fk_control_error_histories_control_id | foreign key | control_id |


security_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 状態 status unsigned tinyint ○ 1 0: 無効(セキュリティOFF/ブレーク), 1: 有効(セキュリティON/メーク)
5 報告日時 reported_at timestamp ○ システム日付 テーブル更新時にシステム日付で更新する
6 登録日時 created_at timestamp ○ システム日付
7 更新日時 updated_at timestamp ○ システム日付 テーブル更新時にシステム日付で更新する

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


security_status_histories(区画セキュリティ状態履歴)

役割: 制御デバイスの正常稼働報告を管理する。 UI: 不要. 備考: なし(ただし役割欄の文言について【矛盾・不明瞭】に記載)

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk
3 エリアID section_id unsigned bigint ○ fk
4 状態 status unsigned tinyint ○ 0: 無効(セキュリティOFF/ブレーク), 1: 有効(セキュリティON/メーク)
5 報告日時 reported_at timestamp ○ システム日付
6 登録日時 created_at timestamp ○ システム日付

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

※インデックス名が他テーブルの命名規則(テーブル名を含む)と異なり「2s」という略称になっている(原文ママ)。


clean_statuses(清掃状態)

役割: 清掃状態を管理する。 UI: 要(Request) 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto_increment
2 施設ID facility_id unsigned bigint ○ fk 追加
3 エリアID section_id unsigned bigint ○ fk
4 タイムテーブルID clean_timetable_id unsigned bigint ○ fk 追加
5 状態 clean_status unsigned tinyint ○ 0 0: 清掃前, 1: 清掃中, 2: 清掃終了(セキュリティ有効), -1: 清掃完了(セキュリティ無効)
6 状態推移 clean_status_trans unsigned tinyint ○ 0 0: 清掃開始前, 1: 清掃指示, 2: 清掃中. 3: 清掃一時停止指示, 4: 清掃キャンセル指示, 8:清掃完了(正常), 9: 清掃完了(異常)
7 エラー clean_error unsigned tinyint ○ 0 0: 正常, 1: 異常(清掃未実施), 2: 異常(セキュリティ有効), 3: 異常(D-S制御盤異常), 4: 異常(清掃ロボット異常)
8 清掃対象面積 task_area unsigned decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(task_area), 追加
9 清掃実施面積 clean_area unsigned decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(clean_area), 追加
10 清掃実施面積(百分率) clean_ratio unsigned tinyint ○ 0 清掃実施面積 / 清掃対象面積 で計算する. 100を超過する値が生成される場合もある. 小数点以下は四捨五入とする.
11 清掃開始日時 started_at datetime
12 清掃終了日時 ended_at datetime
13 登録日時 created_at timestamp ○ システム日付
14 更新日時 updated_at timestamp ○ システム日付
15 削除日時 deleted_at timestamp 不要

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_clean_statuses_id | primary key | id | | fk_clean_statuses_facility_id | foreign key | facility_id | | fk_clean_statuses_section_id | foreign key | section_id |

※カラム5「状態(clean_status)」の型は unsigned tinyint だが、備考に -1(清掃完了(セキュリティ無効))という負の値が記載されており、型と値の整合性が取れていない(原文ママ)。


clean_status_histories(清掃状態履歴)

役割: 清掃結果履歴を管理する。 UI: 不要 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ uk
2 施設ID facility_id unsigned bigint ○ fk
3 エリアID section_id unsigned bigint ○ fk
4 タイムテーブルID clean_timetable_id unsigned bigint ○ fk
5 状態 clean_status unsigned tinyint ○ 0 2: 清掃終了(セキュリティ有効), -1: 清掃完了(セキュリティ無効)
6 結果 clean_error unsigned tinyint ○ 0 0: 正常, 1: 異常(清掃未実施), 2: 異常(セキュリティ有効), 3: 異常(D-S制御盤異常), 4: 異常(清掃ロボット異常)
7 清掃対象面積 task_area decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(task_area),
8 清掃実施面積 clean_area decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(clean_area),
9 清掃実施面積(百分率) clean_ratio unsigned tinyint ○ 0 清掃実施面積 / 清掃対象面積 で計算する. 100を超過する値が生成される場合もある. 小数点以下は四捨五入とする.
10 清掃開始日時 started_at datetime ○ 清掃スケジュールの清掃開始日時を格納する
11 清掃終了日時 ended_at datetime ○ 清掃スケジュールの清掃終了日時を格納する
12 登録日時 created_at timestamp ○ システム日付

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | uk_clean_status_histories_id | unique key | id | | fk_clean_status_histories_facility_id | foreign key | facility_id | | fk_clean_status_histories_section_id | foreign key | section_id |

※カラム1「id」のキー種別は他テーブルの「pk」ではなく「uk」(unique key)と記載されている(原文ママ)。カラム5の備考も clean_statuses と異なり「0/1」の説明がなく「2」「-1」のみが列挙されている(原文ママ)。


clean_task_reports(清掃タスク報告)

役割: ロボット毎の清掃タスク報告情報を管理する。この情報を元に清掃状態情報を定期的に更新する. UI: 不要 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 レポートID report_id varchar 20 ○ pk
2 施設ID facility_id unsigned bigint ○ fk
3 エリアID section_id unsigned bigint ○ fk
4 ロボットID robot_id unsigned bigint ○ fk 該当する清掃ロボットがあれば記録する, 無ければ記録しない.
5 タイムテーブルID clean_timetable_id unsigned bigint 該当するロボットID, 情報の取得日時から該当する清掃タイムテーブル情報を引き当てる.
6 製品(管理)番号 serial_number varchar 20 ○
7 清掃結果 status unsigned tinyint ○ 0 (備考欄の記載なし)
8 清掃対象面積 task_area decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(task_area), 追加
9 清掃実施面積 clean_area decimal (12, 6) ○ 0 PUDU Cloud のclean task logから取得する(clean_area), 追加
10 清掃実施面積(百分率) clean_ratio unsigned tinyint ○ 0 清掃実施面積 / 清掃対象面積 で計算する. 100を超過する値が生成される場合もある. 小数点以下は四捨五入とする.
11 清掃開始日時 started_at datetime ○
12 清掃終了日時 ended_at datetime
13 清掃時間 clean_time unsigned int ○ 0
14 登録日時 created_at timestamp ○ システム日付 清掃日を設定(Y-m-d 23:59:59)
15 更新日時 updated_at timestamp ○ システム日付

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_clean_task_reports_report_id | primary key | report_id | | fk_clean_task_reports_facility_id | foreign key | facility_id | | fk_clean_task_reports_section_id | foreign key | section_id | | fk_clean_task_reports_robot_id | foreign key | robot_id |

※カラム7「清掃結果(status)」は unsigned tinyint だが、他の status/state 系カラム(例: robot_error_reports.status 等)と異なり、備考欄に取りうる値の説明が一切記載されていない(原文ママ、「読み取れず」ではなく「定義書に記載なし」)。


clean_schedules(清掃スケジュール)

役割: 区画毎の清掃スケジュールを管理する UI: 要 備考: なし

# 論理カラム名 物理カラム名 データ型 サイズ 必須 初期値 キー 備考
1 管理ID id unsigned bigint ○ pk auto increment
2 施設ID facility_id unsigned bigint ○ fk
3 エリアID section_id unsigned bigint ○ fk
4 曜日 weeks varchar 7 ○ 清掃を行う曜日を1, 行わない曜日を0とする。日月火水木金土で設定する。 例) 日火木土に清掃を行う場合 1010101
5 開始時間 start_time varchar 4 ○ 時分を格納する。0930や1245等 範囲は0000~2359
6 終了時間 end_time varchar 4 ○ 時分を格納する。0930や1245等, 範囲は0000~2959(日跨ぎを想定)
7 清掃開始日時 started_at datetime idx 曜日, 開始時間から直近の清掃開始日時を生成し格納する
8 清掃終了日時 ended_at datetime idx 曜日, 開始時間から直近の清掃終了日時を生成し格納する
9 契約 contract varchar 10 ○ 0000000000 各サービス毎にフラグとして機能する. D-Securityを1桁目, D-Watchを2桁目とし, 契約済(有効)なサービスを1とする. 例えばD-Security, D-Watchを契約している場合は次のように表現される. 例) 1100000000
10 無効フラグ inactive unsigned tinyint ○ 0 0: 有効, 1: 無効
11 登録日時 created_at timestamp ○ システム日付
12 更新日時 updated_at timestamp ○ システム日付
13 削除日時 deleted_at timestamp

インデックス: | 名称 | タイプ | 対象カラム | |---|---|---| | pk_clean_schedules_id | primary key | id | | fk_clean_schedules_facility_id | foreign key | facility_id | | fk_clean_schedules_section_id | foreign key | section_id |

※カラム6「終了時間(end_time)」の備考は「範囲は0000~2959(日跨ぎを想定)」となっており、カラム5「開始時間」の範囲(0000~2359)と桁の意味が異なるように見える(原文ママ、意図不明)。


矛盾・不明瞭に見えた箇所(原文ママ、修正せず列挙)

  1. robot_error_reports のインデックス1の備考「もしくはid, report_id の2カラムで主キーを定義する.」に出てくる report_id は、robot_error_reports のカラム一覧には存在しない(存在するのは error_id 等で、report_id は clean_task_reports のカラム名)。テーブルをまたいだ記述の可能性。
  2. control_reports のカラム5の物理名は sireal_number(serial の綴りが sireal になっている)だが、インデックス4「fk_control_reports_serial_number」の対象カラムは serial_number と記載されており、両者の綴りが一致していない。
  3. control_error_histories の役割欄に「現時点では未使用. 清掃状態, 清掃状態履歴で確認できるため. テーブル名変更」という注記があり、このテーブル自体が使われていない可能性を示唆している。
  4. security_status_histories の役割欄の文章「制御デバイスの正常稼働報告を管理する。」は、論理テーブル名「区画セキュリティ状態履歴」(=セキュリティ状態に関するテーブル)の内容と一致しておらず、control_reports の役割文言と酷似している(コピー&ペーストの可能性)。ユーザー指示の担当表でも16番は「制御デバイスの正常稼働報告」と記載されており、定義書の役割欄の文言と一致している。
  5. security_status_histories のインデックス名が pk_2s_histories_id / fk_2s_facility_id / fk_2s_section_id となっており、他の全テーブルの命名規則(pk_<table>_id 等、テーブル名をフルで含む)と異なり 2s という略称になっている。
  6. clean_statuses / clean_status_histories のカラム「状態(clean_status)」は型が unsigned tinyint だが、備考に -1: 清掃完了(セキュリティ無効) という負の値が記載されており、unsigned 型と矛盾している。
  7. 清掃対象面積(task_area)・清掃実施面積(clean_area) の型が、clean_statuses では unsigned decimal(unsigned 付き)、clean_status_histories と clean_task_reports では decimal(unsigned なし)と、同じ論理カラムでもテーブルによって型表記が異なる。
  8. clean_status_histories のカラム1「id」のキー種別は uk(unique key)で、他テーブルの pk(primary key)と異なる。
  9. clean_task_reports のカラム7「清掃結果(status)」には、他の状態系カラムと異なり備考欄に値の意味の説明が一切ない。
  10. clean_schedules のカラム6「終了時間(end_time)」の備考「範囲は0000~2959(日跨ぎを想定)」は、カラム5「開始時間」の範囲(0000~2359)と数値の意味が揃っておらず、2959という値の根拠が不明瞭。
  11. robot_error_reports と control_error_histories の「対応開始日時」カラムの物理名はいずれも responsed_at と記載されている(英単語としては respond の過去分詞は responded であり、綴りの誤りの可能性があるが、原文ママ転記)。

(型・サイズ・必須・初期値等で「読み取れず」に該当する箇所はありませんでした。全セルが判読可能でした。)