🌐
YESOD ディレクトリーサービスのデータ構造について
ディレクトリーサービスのコア概念
メンバー(Member)
メンバーは、YESOD 上で管理される「人」の単位です。雇用形態に依らず、個人を一意に表現します。
メンバーは大きく分けて、次の2種類の属性を持ちます。
メンバー項目(個人属性)
メンバーそのものに紐づく属性です。
- 例:氏名、生年月日、個人メールアドレス など
グループ関連項目(関係属性)
「メンバー × グループ」の関係ごとに持つ属性です。同じ個人であっても、所属するグループが異なれば値が変わり得ます。
- 例:会社ごとの社員番号、組織ごとの役職、事業所ごとの座席番号 など
グループ(Group)
グループは、メンバーを束ねる「まとまり」の総称です。代表的には次のような種別があります。
- 会社(法人単位)
- 組織(部門・チームなど。階層構造を持つことがあります)
- 事業所(オフィス・拠点などの物理的な場所)
- プロジェクト
1人のメンバーは、複数のグループに同時に所属できます。
- 例:A社の正社員であり、営業本部/第1営業部に所属し、新宿オフィスに常駐している
グループごとの関連項目(属性)
YESOD では、「メンバー」と「グループ」の組み合わせごとに、固有の関連項目(属性)を持たせられます。
具体例
- 会社ごとの社員番号
- 例:会社Aでは「社員番号 123」、会社Bでは「社員番号 456」
同じ個人が複数のグループ会社に在籍している場合でも、会社ごとに異なる社員番号を持てます。
- 組織ごとの役職
- 例:本社組織では「組織長」、兼務組織では「組織長代理」
本務組織と兼務組織など、所属単位ごとに役職を持てます。
- 事業所ごとの座席番号
- 例:本社オフィスでは「1-23」、サテライトオフィスでは「2-45」
拠点ごとに座席番号や内線などを持てます。
ポイント
- 1人のメンバーが、所属するグループごとに異なる値を持てることが前提です。
- 関連項目は「メンバー × グループ」の単位で管理されます(同じメンバーでも、グループが変われば値も変わり得ます)。
すべての項目が「時系列」で管理される
YESOD のディレクトリーサービスでは、メンバー/グループ/それらの関係(所属)や関連項目は、「いつからいつまで有効か」という時系列情報とセットで管理されます。
特徴
- 各レコードは、有効期間(いつから有効か/いつまで有効か)や 変更日(有効開始日) を持ちます。
- API では、特定の日付時点を指定して、次のような情報を取得できる設計になっています。
- その時点で有効なメンバー情報
- 過去時点の組織構造
- 未来日時点(予定)の配属情報
利用イメージ
- 「2026-01-01 時点で在籍していたメンバー一覧を取得したい」
- 「2026-01-01 時点で在籍していて、雇用形態が正社員のメンバー一覧を取得したい」
- 「2026-01-01〜2026-03-01 の間に入社したメンバー一覧を取得したい」
- 「2026-01-01〜2026-03-01 の間に退社したメンバー一覧を取得したい」
- 「来月の組織改編後の組織図を API で確認したい」
入社・退社の定義とライフサイクル
YESOD では「在籍しているかどうか」を単なるフラグではなく、**会社グループとの関係(有効期間)**で表現します。
入社
あるメンバーが、特定の「会社」グループと関係を持ち始めた日を 入社 とみなします。
その日以降、その会社に対して「在籍中」として扱われます。
退社
会社との関係が終了した日以降は、そのメンバーはその会社に対して「退社扱い」となります。
データ構造上は、会社グループとの関係の有効期間が終了した状態として表現されます。
ポイント
- 入社・退社は、「メンバー × 会社グループ」の関係の 開始日/終了日 として扱われます。
- 日付を指定して、在籍メンバー/過去在籍メンバーなどを取得できます。
- 将来日付の入社情報を登録しておくことで、未来日入社も同じ枠組みで管理できます。
データ構造のイメージ(概念レベル)
本ページでは実際のテーブル名やエンティティ名は抽象化していますが、概念的には次のような構造を想定しています。
- メンバー(Member)
個人を一意に表すエンティティ。氏名、連絡先、識別子などの基本情報を持つ。
- グループ(Group)
会社・組織・事業所などを含む、メンバーを束ねるエンティティ。種別や階層構造(親子関係)を持つ。
API ドキュメントとの関係
各 API エンドポイントは、上記のようなエンティティおよびそれらの関連を操作する形で設計されています。
例えばメンバーインポート API では、以下をまとめて扱うことを想定しています。
- メンバーそのものの作成・更新
- メンバーと各種グループとの関係(所属)の登録
- 関連項目および有効期間(いつから有効か)の登録