第28話 カスタムAppの目的や役割
エヌ・ケイ・カスタマイズの福山です。前回、泉からシステムを一から作る際に常に意識しておくべき大切な土台の部分、概念、作法、約束事について解説させて頂きましたが、今回は、カスタムAppの目的や役割についてお話した後、例をあげて設計について考えてみたいと思います。
タスク管理のファイルを想定して考えていきたいと思います。
まず、カスタムAppの目的や役割を決めていきます。
・タスク管理したい
・タスクの担当者がわかるようにしたい
・タスクに関連する添付ファイルがある
と考えていることにします。
カスタムAppの設計
構造を設計します。タスクを管理するには、どのような構造が必要でしょうか。ファイルは1つとします。
テーブルとフィールド、リレーションシップを考える
テーブルを考えます。次の内容を思いついたとします。これを正規化します。
・ タスク名
・ タスクの期限
・ カテゴリー(タスクの種類:プロジェクト A、プロトタイプ B、プロジェクト C、その他)
・ 優先度(高、中、低)
・ ステータス(いまどこまで進んでいるか:進行中、保留中、延期、キャンセル、完了)
・ タスクの説明
・ タスクの完了日
・ 添付ファイル(資料を添付する。1 個あるいは複数添付する)
・ 添付ファイルコメント
・ 担当者(1 名あるいは複数名入力する)
・ 担当者電子メール
・ 担当者電話番号
項目の種類で分けます。計 3 つのテーブルになります。
・ タスクテーブル
・ 添付ファイルテーブル
・ 担当者テーブル
テーブルの種類は、次のようになります。
・ タスク、添付ファイルはイベントテーブル
・ 担当者はマスタテーブル
<タスクテーブル>
・ タスク名
・ タスクの期限
・ カテゴリー
・ 優先度
・ ステータス
・ タスクの説明
・ タスクの完了日
<添付ファイルテーブル>
・ 添付ファイル
・ 添付ファイル説明
<担当者テーブル>
・ 担当者名
・ 電子メール
・ 電話番号
実は、もう一つテーブルが必要です。次のことを成立させるためです。
・ タスクには、複数の担当者が割り当てられることがある
・ 担当者 1 人には複数のタスクが割り当てられることがある
タスクと担当者の間に必要なものとして、<割り当てテーブル>を想定します。ER 図を考えます。各テーブルの「主キー」と「外部キー」がわかります。

各テーブルのフィールドを考えていきます。




次に、どのようなデータが入るかを考えて、フィールドタイプを決めていきます。




電話番号は 0 から始まるので数字ではなくテキストです。ステータス(進行中、保留中、延期、キャンセル、完了)やカテゴリー(プロジェクト A、プロトタイプ B、プロジェクト C、その他)は、文字列が入る予定なのでテキストです。これで、構造について基本的な設計ができました。
今回は、カスタムAppの目的や役割についてお話した後、例をあげて設計について考えてみました。
また、次回もよろしくお願いいたします。