画面に「数量」「返却日」「担当者」という項目が並んでいても、その意味が揃っているとは限りません。数量は申請数なのか実際に貸した数なのか。返却日は予定なのか実績なのか。項目名に加えて、意味・値の単位・未入力・変更の扱いを決めるのが、データ定義の出発点です。
この記事は、画面やAPIに載せる情報を整理する企画・開発担当者向けです。架空の備品貸出台帳のデータ辞書を作ります。以下の項目や上限は作例で、現場の運用から確認するための案です。
先に、似た言葉を分ける
たとえば「日付」だけを作ると、画面担当は返却予定日、集計担当は実際に返却した日と解釈するかもしれません。この作例では、利用者と総務が約束する「返却予定日」と、現物を受け取った「返却日時」を別にします。
同じように「数量」は、個体を管理する機器なら単純な個数では足りません。ノートPCを2台貸す場合、どの管理番号の2台なのかが必要です。ここでは個体管理する機器を対象とし、消耗品の数量管理は扱わないと決めます。項目を定義する前に、今回の対象範囲と揃えます。
データ辞書の作例
| 項目 | 意味と形式 | 未入力・制約 | 誰がいつ決めるか |
|---|---|---|---|
| 備品管理番号 | 現物を識別する文字列。例:PC-0042 | 必須。同じ番号を重複登録しない | 総務が備品登録時に付与 |
| 申請者ID | 申請者を識別するID | 必須。表示名だけで照合しない | 申請時にログイン情報から設定 |
| 返却予定日 | 日本時間での予定日。例:2026-10-09 | 貸出開始日以降 | 申請者が入力、変更ルールは別途合意 |
| 返却日時 | 総務が現物の返却を確認した日時 | 未返却では未設定 | 総務が返却確定時に記録 |
| 受渡メモ | 総務内の引き継ぎ情報 | 任意。空ならメモなし | 総務が必要時に記入 |
番号の「0042」を数値として保存すると、先頭のゼロを表示し直す必要が出ます。計算しない識別子と、計算する数量は、見た目が数字でも同じ型にしない方針をこの例では採ります。
この表に実装名を併記しても構いませんが、まずは業務担当が「何を表す値か」を判断できることが大切です。入力画面・一覧・CSVで別名を使うなら、その対応も残します。
「必須」だけでは空欄を決めきれない
JSON Schemaでは、プロパティが存在することを求める required と、値の型は別に指定します。また、値が null であることと、プロパティ自体がないことも異なります。object
文字列については、空文字も文字列として有効であり、長さの制約は minLength などで表します。string
これはJSON Schemaを必ず使うという話ではありません。要件の「必須」も、同じように分解する必要があるという記事側の提案です。この台帳なら次の扱いを決めます。
| 入ってきた値 | 備品管理番号での扱い | 受渡メモでの扱い |
|---|---|---|
| 項目自体がない | 新規登録を受け付けない | 新規登録ではメモなし |
| 空文字 | 受け付けない | メモなしとして保存 |
| 空白だけ | 前後の空白を除いた後、空なら受け付けない | 同じ処理でメモなしにする |
| null | 新規登録を受け付けない | メモなしとして保存 |
更新APIでは、項目の省略を「変更しない」、空の値を「消す」と扱う設計もあります。新規登録と更新を同じ表だけで済ませず、区別して合意します。
古いデータに、新しいルールを当てる前に
運用開始後に返却予定日を必須にすると、過去の貸出記録に値がないかもしれません。適当な日付で埋めると、それが本当の約束だったように見えます。
この例では「未確認」の既存記録として一覧から探せるようにし、総務が本人へ確認して埋める案にします。新規登録への必須条件、過去データの補完、未確認中の表示を別々に決めます。通知や延滞集計がその値を使う場合は、未確認の記録をどう扱うかも必要です。
1項目を持ち帰って確認する
次の打ち合わせでは、誤解が起きそうな項目を一つ選び、意味、正常な値、空欄、境界、変更できる人、既存データの順に確認してください。「返却日」なら、日付だけか時刻も必要か、どの時点を返却とするか、未返却をどう表すかまで話せると、実装の判断が揃います。