docs:apps:enumeration

列挙値管理設計

システム内で使用する列挙型の値をデータベースで管理したい

  • slug はレコードの値が属する親を識別するための文字列で、スラッシュ区切りで階層を表す.
    • 当初 slug は値の識別も含めたユニーク値にしようと考えたが、いちいち英名を考えるのは苦しいので、やめた.
    • いっそのこと slug 自体にマルチバイト文字を含めてはどうだろう…
      • やはり英名を考える時間を短縮できる魅力は捨てがたい
      • 区切り文字のエスケープを考えなければならない. '/' は汎用的すぎるので '::' にしてみる
      • ソースコードにマルチバイトの slug を含めることになるが、定数化するため特に問題も出ないだろう…
  • 例) 費目の事業収入に属する費目の一覧
    • slug: 費目::事業収入, value: 大会参加費
    • slug: 費目::事業収入, value: 講習会参加費
    • slug: 費目::事業収入, value: 審判派遣費
  • 親は slug で判断できるので parent_id は不要

CREATE TABLE IF NOT EXISTS `enumerations` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(255) NOT NULL comment '分類名 階層のセパレータは :: とする(先頭セパレータ不要)',
  `name` VARCHAR(255) NULL comment '表示名が value と異なる場合のみ指定',
  `value` VARCHAR(255) NOT NULL,
  `weight` INT(11) NOT NULL DEFAULT '0',
  `note` text NULL,
  `applied_at` DATETIME NOT NULL,
  `expired_at` DATETIME NULL DEFAULT NULL,
  `created_by` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
  `created_at` DATETIME(3) NOT NULL,
  `updated_by` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
  `updated_at` DATETIME(3) NULL DEFAULT NULL,
  `deleted_by` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
  `deleted_at` DATETIME(3) NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `UNQ__slug__value__applied_at` (`slug`, `value`, `applied_at`),
  INDEX `IDX__slug` (`slug`)
) ENGINE=InnoDB COLLATE='utf8mb4_general_ci';

費目

  • 前年度繰越金
    • 前年度繰越金
  • 登録料収入
    • JDBA 登録料
    • チーム登録料
    • 審判登録料
    • 新規審判登録料
    • 賛助会員等登録料
  • 事業収入 /expenses/project_incomes
    • 大会参加料 /expenses/project_incomes/championship_entry_fee
    • 講習会受講料 /expenses/project_incomes/workshop_fee
    • 大会主管料(補助金,助成金等)/expense/project_incomes/tournament_management_fee
    • 大会協賛金収入 /expenses/project_incomes/tournament_sponsorship
    • 審判派遣収入 /expenses/project_incomes/referee_dispatch_fee
  • 広告料収入 /expenses/advertising_revenues
    • 広告料 /expenses/advertising_revenues/advertisement_charge
  • 販売収入 /expenses/selling_revenues
    • 販売品売上 /expenses/product_salse
  • 雑収入
    • 口座利息
    • その他雑収入
    • 懇親会会費
  • 事業支出
    • 大会開催費
    • 講習会開催費
    • 審判員派遣費
  • 加盟金支出
    • 日本協会加盟金
    • 関東ブロック協賛金
    • 日本協会登録料(審判認定料・チーム登録料)
    • 大会協賛金支出(北関東大会負担金)
  • 会議費支出
    • 会議費(会場費、交通費、飲食代等)
  • 事務費支出
    • 通信費
    • 事務用消耗品
    • 備品費
    • 事務経費(振込手数料、交通費)
    • 事務手数料
  • 販売品仕入
    • 販売品仕入代金
  • 慶弔費
    • 全国大会祝金
    • 慶弔支出
  • 雑費
    • 雑費
  • 次年度繰越金
    • 次年度繰越金
  • docs/apps/enumeration.txt
  • 最終更新: 2020/03/07 03:01
  • by admin