概念データモデル
本ドキュメントは、TASHIKAプラットフォームの概念データモデルを定義する。ビジネスエンティティとその関係性を領域の観点から整理し、「システムが何のデータを管理するか」を概念レベルで表現する。
→ 領域の定義と用語の対応は コンテキストマップ 参照 → 領域別ユースケース一覧は ユースケース一覧 参照 → データの状態遷移・繰り越しルール・保持期間は データライフサイクル 参照 → 論理・物理設計の詳細は データモデル設計 参照
概念ER図
各領域内のエンティティ群とその関係を概念ER図で俯瞰する。
凡例: 実線 = コンテキスト内の関係(Fact)、破線 = コンテキスト間のマッピング(Judgment)
エンティティ定義
代行領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-101 | 代行事業者(Agency) | 複数の企業を顧問先として管理する代行事業者 |
| DM-102 | 代行スタッフ(AgencyStaff) | 代行事業者のスタッフ。ロール・担当顧問先を持つ |
概念ER図上の「顧問先」は、代行領域から見た企業(DM-201)の呼称。
組織領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-201 | 企業(Company) | 年始調整を実施する企業単位。1つの代行事業者に属するか独立管理。サブスクリプション領域では「テナント」、代行領域では「顧問先」と呼ぶ |
| DM-202 | 事業所(Establishment) | 給与支払報告書の提出単位。企業に従属 |
| DM-203 | 従業員(Employee) | 年始調整の申告主体。企業に属し、部署への所属は任意。雇用状態(在籍中・休職中・退職済み)で管理し、退職後もデータは7年保持。自身の家族構成員(DM-301)と1:1で紐づき、個人属性は家族構成員側で保持する |
| DM-204 | 部署(Department) | 可変深度の階層構造(親子関係)。税務上の意義はなく、進捗管理・担当スコープの管理単位 |
| DM-205 | 管理者部署スコープ(AdminDepartmentScope) | 企業管理者の担当部署スコープ。未設定時は全部署にアクセス可能。→ SR-004 |
家族領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-301 | 家族構成員(FamilyMember) | 家族グラフの個人ノード。従業員本人も家族構成員として表現される。氏名、生年月日、マイナンバーを持つ。控除可否にかかわらず全構成員を保持。年齢は生年月日から12/31現況で自動計算(前日満了ルール適用) |
| DM-302 | 親族関係(FamilyRelationship) | 構成員間の関係(婚姻、親子、養子縁組等)。血族/姻族、直系/傍系、親等数、生計一フラグ等を持つ。民法の定義に基づき年度パラメータに依存しない。→ 親族のカテゴリ |
| DM-303 | 送金記録(RemittanceRecord) | 非居住者親族への個別送金記録。38万円判定に使用。→ 非居住者親族 |
| DM-304 | 家族本人入力招待(FamilyInputInvitation) | 家族本人入力の招待。状態管理、多言語対応、アクセス回数制限を備える。→ 家族本人入力 |
概念ER図上の「年度属性(Fact)」は、家族構成員が持つ年度ごとの属性群(所得見積額、障害区分、住所、非居住者区分、同居の有無等)を概念的に表現したもの。年度×家族構成員で一意。
家族グラフの構造
家族構成は「個人ノード(FamilyMember)」と「関係エンティティ(FamilyRelationship)」のグラフ構造で設計する。単純な木構造ではない。
- 従業員本人もグラフの一ノードとして参加する
- 子は「婚姻関係」に紐づくことで、再婚・連れ子に対応する
→ 親族のカテゴリ
★ = 従業員と1:1で紐づく家族構成員(self)
所得データの構造
各家族構成員(本人・配偶者・親族)に対して同一の構造で所得データを管理する。→ 所得の合計
所得データ(家族構成員ごと)
├── 給与所得(給与収入金額 → 給与所得控除後の金額)
├── 退職所得(別枠管理: 住民税では合計所得金額に含めない)
├── 公的年金等の雑所得(年金収入金額 → 公的年金等控除後の金額)
├── その他の所得(勤労/不労の区分あり)
└── 合計所得金額
├── 所得税用: 全所得の合計
└── 住民税用: 退職所得を除く合計申告領域
事実データ
| ID | エンティティ | 説明 |
|---|---|---|
| DM-401 | 申告(Declaration) | 年始調整の申告データ本体。年度×従業員で一意。事実データは控除可否に関係なく常に保持する |
| DM-403 | 保険料控除(InsuranceDeduction) | 保険料控除データ(生命保険、地震保険、社会保険) |
| DM-404 | 住宅借入金等特別控除(HousingLoanDeduction) | 住宅借入金等特別控除データ(2年目以降) |
| DM-405 | その他の所得(OtherIncome) | 給与所得以外の所得データ |
| DM-406 | 申告スナップショット(DeclarationSnapshot) | 申告データの時点スナップショット。履歴復元の単位 |
| DM-407 | アップロード証憑(UploadedEvidence) | 従業員がアップロードした証憑(画像/PDF/XML) |
| DM-408 | 電子的控除証明書(ElectronicCertificate) | e-Tax電子的控除証明書のインポートデータ。→ e-Tax XML構造 |
概念ER図上の「申告者」は、申告領域から見た従業員(DM-203)の呼称。 概念ER図上の「控除」は、保険料控除・住宅借入金等特別控除等の控除データを包括する概念。
判定
| ID | エンティティ | 説明 |
|---|---|---|
| DM-409 | カテゴリ判定結果(CategoryJudgmentResult) | 各家族構成員に対する税法カテゴリ判定結果(同一生計配偶者、控除対象扶養親族等)。年度パラメータ適用後の結果であり、前年から引き継がない |
| DM-410 | 計算差分(CalculationDiff) | 再計算前後の差分データ(過不足額・控除・カテゴリ判定の3層)。非永続エンティティ |
給与領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-501 | 税額計算結果(TaxCalculationResult) | 税額計算パイプラインの結果。1つの申告に対し複数バージョン可(初回確定、再年調)。確定後は不変。→ 年税額計算 |
| DM-502 | 控除明細(DeductionDetail) | 控除ごとの計算過程(税額計算結果の内訳)。適用判定理由のトレーサビリティを確保 |
| DM-503 | 源泉徴収票(WithholdingSlip) | 国税庁TEGフォーマット準拠。→ 給与所得の源泉徴収票 |
| DM-504 | 法定調書合計表(LegalSummaryReport) | 法定調書合計表(税務署提出用) |
| DM-505 | 給与支払報告書(MunicipalTaxReport) | 給与支払報告書(市区町村別) |
| DM-506 | 給与データインポート(PayrollImport) | 給与データのインポート記録(月次給与・源泉徴収税額・社会保険料) |
概念ER図上の「給与の支払者」「支払事業所」「給与所得者」は、給与領域から見た企業・事業所・従業員の呼称。 概念ER図上の「源泉徴収額」は、給与データインポートを通じてインポートされる毎月の天引き額の合計を概念的に表現したもの。
アイデンティティ領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-601 | ユーザー(User) | 認証エンティティ。従業員・代行スタッフ等と1:1で紐づく。ロール(→ SR-001)、MFA設定、ロック状態を保持 |
| DM-602 | リフレッシュトークン(RefreshToken) | リフレッシュトークン。セッション管理の基盤 |
| DM-603 | ユーザーセッション(UserSession) | セッション管理(ユーザーあたり最大3。超過時は最古を自動失効) |
| DM-604 | ログイン試行記録(LoginAttempt) | ログイン試行記録(成功・失敗問わず。ブルートフォース検知に使用) |
サブスクリプション領域
| ID | エンティティ | 説明 |
|---|---|---|
| DM-701 | 契約(Contract) | TASHIKAとの利用契約。プラン種別(代行事業者プラン/独立管理プラン)と契約状態を持つ。代行事業者またはテナントと1:1で紐づく。代行経由テナントの契約は利用規約同意のみで課金関係を含まない |
| DM-702 | 請求(Invoice) | 月次請求。代行事業者または独立テナントに対して発行。請求年月、合計金額、支払い状態(未払い/支払い済み/支払い失敗/取消済み)、決済トランザクションIDを持つ。月次バッチ生成のほか、臨時請求・取消請求(マイナス請求)も同一エンティティで扱う。取消請求は元の請求と紐づく。→ 課金モデル |
| DM-703 | 請求明細(InvoiceLineItem) | 請求の内訳行。明細種別(基本料金/顧問先企業/従業員従量/オプション)、対象テナント、数量、単価、小計を持つ。代行事業者プランでは顧問先テナントごとの従業員数・金額を明細行として生成する |
| DM-704 | オプション契約(OptionSubscription) | 本契約に付随するオプション機能の契約。オプション種別、契約状態(有効/解約予定/解約済み)を持つ。本契約が「有効」の場合のみ契約可能。適用は即時、課金は次回請求サイクルから。解約は月末締め。オプション間に依存関係がある場合、前提オプションの契約を検証する。本契約解約時は全オプションも同時解約される |
| DM-705 | 本契約申請(FormalApplication) | トライアルから本契約への移行申請。代行事業者プランでは税理士登録番号の提出と審査が必要(税理士法52条)、独立管理プランでは支払い方法設定のみで即時有効化。審査状態(審査中/承認/却下)を持つ。審査中はトライアル期限を猶予し、却下後14日間の再申請猶予を設ける |
| DM-706 | 移行申請(MigrationRequest) | 利用モデルの切替・顧問先の移管申請。移行種別(代行→独立/独立→代行/代行→別の代行)、承認状態を持つ。月末締め・翌月1日適用。データ(従業員・申告等)は移行先に継続される。代行→独立/代行→別の代行は双方合意(承認タイムアウト14日間)、独立→代行は招待コード受諾で成立 |
概念ER図上の「テナント」は、サブスクリプション領域から見た代行事業者(DM-101)または企業(DM-201)の呼称。 契約・請求の状態遷移とデータ保持ポリシーは データライフサイクル 参照。
設定・マスタ系
| ID | エンティティ | 説明 |
|---|---|---|
| DM-801 | 年度設定(AnnualSetting) | 企業の年度別設定(申告期限、リマインドスケジュール等) |
| DM-802 | 税制年度マスタ(TaxYearMaster) | 年度別税制パラメータのグローバルマスタ。→ 年税額計算 |
| DM-803 | 控除種類マスタ(DeductionTypeMaster) | 控除種類マスタ(人的控除9種、物的控除4種、調整2種)。→ 控除 |
| DM-804 | 所得種類マスタ(IncomeTypeMaster) | 所得種類マスタ。→ 所得 |
| DM-805 | ブランド設定(BrandingConfiguration) | ホワイトラベル用ブランド設定。代行事業者/企業に1:1 |
| DM-806 | カスタムドメイン(CustomDomain) | カスタムドメイン設定 |
監査・運用系
| ID | エンティティ | 説明 |
|---|---|---|
| DM-901 | 監査ログ(AuditLog) | 操作ログ(誰が・いつ・何を・どう操作したか)。改ざん不可 |
| DM-902 | 通知(Notification) | 通知履歴。配信メタデータは7年保持(監査目的)、通知本文は90日後に削除(プライバシー保護)の二層構造 |
| DM-903 | 非同期ジョブ(AsyncJob) | 非同期ジョブ実行記録(PDF生成、一括計算、メール配信等) |
| DM-904 | 通知テンプレート(NotificationTemplate) | 通知テンプレート。多言語・企業別カスタマイズ対応 |