データベースはシステムの土台です。土台が不安定だと、その上に積み上げていくシステムも不安定なものになります。また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。データベース設計はシステム構築の中でも非常に大切なことなのです。
ワークフローシステムを構築する場合にも、データベース設計が必要です。
このブログではデータベースとは何なのかをかんたんに説明した後、ワークフローシステムに特化して、効率的なデータベース設計についてご紹介します。データベース設計は奥が深く、一概に言えるものではありませんが、大まかな流れをつかんでいただければ幸いです。
そもそもデータベースってなんだっけ
かんたんにいうと、データベースとは、検索や蓄積が容易にできるよう「ある一定の形式で整理された情報の集合」のことです。たとえば、「顧客名簿」や「売上伝票」など、関連した情報をひとまとめにしたファイルなどをデータベースと呼びます。
特にコンピュータで扱うものをデータベースと呼ぶことが多いですが、紙の情報であっても整理された情報の集合であれば、ご自宅にある「住所録」や「辞書」も広義のデータベースの一つです。
これらの情報を整理して蓄積し、使いたいときに必要な情報が取り出せるようにすることが、データベース構築の目的です。
ワークフローの申請情報をデータベース化するメリット
申請データが増えてくると、各申請データの整理や管理が難しくなります。
会社で扱う申請データには、身上届など個人情報を含むものや、見積書など数字を改ざんされては大変な事故につながるものなど、機密性・完全性を確保しなければならないデータがたくさんあります。
しかし、複数の人間が共有、変更し、追加していく情報を、人の手で管理しつづけるのは非常に困難です。
常に紛失、改ざん、情報漏洩のリスクにさらされています。
これらの申請情報をデータベースシステム化することで、自動で整理され、スピーディーに検索することができるようになります。また、同時にアクセスしてデータを共有することができます。さらに不正なアクセスのブロックや、バックアップ機能を兼ね備えるなどリスク回避という観点でも大きなメリットがあります。
「製造本部が申請した出張許可申請」や「各部署の9月に申請された経費精算の平均」といった切り口でデータを抽出して、分析することも簡単にできるようになります。
ワークフローで扱うデータを考えてみよう
「データベース設計」とは、情報システムにおいて、どのような情報をデータベースに格納すべきかを検討し、その「格納すべき情報」を「どのような形で保持するか」を設計することを指します。
ここではワークフローで扱うデータを一部ご紹介します。
1.人事マスタ情報
- ユーザー情報
ワークフローシステムを利用するユーザー情報 - 組織情報、所属情報
ユーザーが所属する組織の情報
ワークフローシステムでは、申請者が所属する組織階層に応じて、承認権限や申請ルートが設定される仕組みになっていることが多いです。 - 役職情報、権限情報
設定された役職や権限に応じて閲覧範囲や承認権限などを制限するための、ユーザーの閲覧範囲や承認権限情報
人事情報は年度替わりや、頻繁に洗い替えされるデータですが、過去の申請を参照するためには、組織改編があった場合やユーザーが退職した場合も組織やユーザー情報は削除せず、当時の記録を残せるようにデータを設計することが大切です。
2.申請フォームに関する情報
- フォームテンプレート情報
社内には、稟議書、見積書、研修報告書、経費精算書、休暇届等、様々な申請書が使われています。紙の運用では、この申請書のテンプレートはあらかじめ作成されており、社員は必要に応じて各書類の入力項目だけを記入することでしょう。
システム化した場合も同様に、あらかじめ各申請書のテンプレートのフォーム情報をデータベースに登録できるように設計します。 - 承認ルートテンプレート情報
多くのワークフローシステムでは、条件分岐のあるルートや複数の業務/役割に対応できるルートを設定できます。複数のルートや同じルート内で共通する承認経路をルートテンプレートとして登録できるように設計するとよいでしょう。
3. 申請情報
- 申請書情報
誰がいつ何を申請したのかという情報と案件の進捗状況を管理する情報 - 承認履歴情報
承認や差し戻しを行った際の日時やコメント情報 - 閲覧者情報
その申請書を閲覧できるユーザー、また閲覧日を管理するための情報 - 申請内容
稟議書、見積書、研修報告書、経費精算書、休暇届等、様々な申請書をそれぞれデータモデルとして設計することで、申請内容を登録して、後から利用することができるようになります。
ワークフローのデータをデータベースにどのような形で保持するか
ワークフローシステムに必要なデータを抽出した後は、物理的に各項目をどのような形でデータベースに保持するか検討します。
ワークフローシステムで、いつでも簡単に申請情報を検索できるようにするためには、申請、承認に関するデータが、効率よく取得できる形で、データベースに格納されていることが重要です。
そのために注意する観点は以下の3つです。
- 正規化
テーブルから冗長な部分を排除してデータを正規化します。テーブル間でデータの整合性がとれている必要があります。 - データ型の決定
数値型、テキスト型、日付型など各データの入れ物の型を決めます。数値の場合は、小数桁数やマイナス値を許可するのか、テキスト型なら文字長の上限はどこまでにするのかなど細かく設定していきます。 - パフォーマンス
検索のパフォーマンス向上のために、インデックスを作成します。パフォーマンス向上のために、あえて正規化を崩すこともあります。
ワークフローシステムの効率的なデータベース設計とはまとめ
このようにワークフローシステムで扱うデータは多岐にわたります。
特に申請書ごとにデータモデルを定義して設計するためには、データベースに関する高度な知識が必要になります。
弊社のAppRemoをご利用いただければ、複雑なデータベース設計は不要で、各申請情報をデータベースに格納することが簡単にできますので、ぜひ体験版をご利用ください。
- TOPIC:
- ワークフロー(申請業務)
- 関連キーワード:
- ワークフロー