データを関連付ける
タスクと時間記録の間に関係を作成し、誰が どのタスク を実行し、どれだけの時間 が費やされたかを把握できるようにします。
このステップの最後には、フォーム 時間記録 がテーブル タスク に関連付けられ、レコード一覧で関連するタスクを直接表示できるようになります。
前提条件
開始する前に、次の項目が完了していることを確認してください:
- フィールド
名前を持つフォーム タスク の作成。 - 作業時間の基本フィールドを持つフォーム 時間記録 の作成。
- データベース で対応するテーブルの設定。
データの関連付けの詳細については、インターフェースガイド: リレーション を参照してください。
ここまでで、タスク管理と時間記録を作成しましたが、それぞれの一覧はまだ独立して動作しています。
各時間記録が、担当者がどのタスクをどの期間に実行したかを明確に示すように、これらを関連付けることが重要です。
このステップでは、次のことを行います:
- フォーム 時間記録 に
select型のフィールドを作成する。 - そのフィールドをテーブル タスク に関連付けるように設定する。
- 実際に関係が機能することを確認するために、いくつかのデータを更新する。
select 型のフィールド
各時間記録に関連付けるタスクを選択できるフィールドを追加します。
- 構築 環境で、フォーム 時間記録 を開き、フィールド管理にアクセスします。
- 次の設定で新しいフィールドを作成します:
- フィールドタイトル:
タスク - 列名:
タスク_id - 型:
select
- フィールドタイトル:
- 必須 オプションを有効にして、すべてのレコードがタスクに関連付けられるようにします。
- 同じタスクに対して多数のレコードが存在するため、一意の値 オプションは無効のままにします。
データモデル全体で一貫した命名規則を維持するために、タスク_id という名前を推奨します。
_id サフィックスを使用する
別のレコードを参照するフィールド名は _id で終わる必要があります。
この規則により、そのフィールドが別のテーブルとの関係を表していることを識別しやすくなり、データモデルがより整理されます。
リレーションフィールドには、タスク や ref_タスク のような汎用的な名前を使用しないでください。
_id で統一すると、データを分析したり連携を作成したりする際の混乱を避けやすくなります。
リレーションリンクを設定する
フィールド タスク_id をタスクテーブルに関連付ける リンク を設定します。
- 新しく作成したフィールド (
タスク_id) で、リンク の設定セクションまでスクロールします。 - 追加 をクリックします。
- 開いたウィンドウで:
- タスク オプションを選択します。
- 次に、名前 フィールドを選択します。
- ウィンドウを閉じて適用します。
完了すると、リンク は次のように定義されます:
タスク:名前
これは次のことを意味します:
- 関係はテーブル タスク に対して作成されます。
- インターフェースでは、
タスクフィールドで選択する際に、タスクの 名前 フィールドの値が表示されます。
保存 ボタンをクリックして、フィールドの設定を保存します。
可能な限り、技術的な識別子や数値ではなく、説明的なフィールド (たとえば 名前) を使用して関連情報を表示してください。
レコードを更新する
リレーションフィールドを設定したら、結果を確認できるようにデータを調整します。
- フォーム 時間記録 の表示にアクセスします。
- 結果テーブルに タスク という新しい列が追加され、最初は空であることに注意してください。
- いくつかのレコードを編集します:
- 結果テーブルの行をクリックして編集フォームを開きます。
- タスク フィールドで、対応するタスクを選択します。
- 保存 をクリックして保存します。
保存後:
- 結果テーブルの タスク 列に、関連付けられたタスクの名前が表示されるようになります。
- 各 時間記録 が タスク に明確に関連付けられ、各アクティビティに費やされた時間をより完全に分析できるようになります。
タスクが未設定のレコードが多数ある場合は、データポリシーに応じて、バッチで更新するか、一時的なデフォルトタスクを定義することを検討してください。
期待される結果
時間記録 の一覧には次が表示されるはずです:
- 関連付けられたタスクの名前が入力された タスク 列。
- 各行がそれぞれのタスクを含む時間記録を表し、どこに時間が費やされたかをより簡単に識別できるようになります。
次のステップ
次のトピックでは、これらのデータを公開し、レポートやカスタムインターフェースなど、アプリケーションの他の部分で利用するための サービス を作成する方法を説明します。