2011-01-21 10 views
2

特定のタスクでユーザーを支援するWebサイトを構築したいと考えています。たとえば、それは家を建てるというサイトです。実行する必要のある明確な順序があります(つまり、スラブを流す前にカーペットを置くことはできません)。私は、ユーザーがスラブを注いだことをチェックできるようにして、完了とマークします。タスク管理サイトの計画を支援する必要があります

すべてのタスクを「タスク」テーブルに入れます。ユーザーがタスクをチェックオフできることを確認するための前提条件テーブルがあります。

これは問題ありません。しかし、サイトのコーディングにあたっては、特定の項目に対してどのようにして1つのレベルのオプションがあるかを把握することができません。例として、「契約者を選んでください」をチェックできるようにしたいと思っており、契約者の連絡先情報を入力するフォームがポップアップします。他の選択肢には、単に選択肢をチェックする以外に何か他の選択肢はありません。

これをコーディングする方法を教えてください。私は、いくつかの項目がユーザーが追加できる追加情報を持つ部分の周りを頭で囲むことはできません。

答えて

1

これはデータベース設計に関する質問です。

これにはいくつかの方法がありますが、タスクにはParentTaskIDフィールドを持たせることもできます。このフィールドにNULL以外の値がある場合、そのタスクはサブタスクであり、どのタスクが親かを知っています。 NULLの場合、これは単なる第1レベルのタスクです。

以下のBradのコメントに基づいて、特定のタスクのすべての前提条件タスクを一覧表示するテーブルを作成することもできます。このテーブルのエントリがないということは、このタスクはフロー内のいつでも実行できることを意味します.1つ(または複数)のエントリは、たとえば、配管作業を最初に実行していない状態では、配線作業。

+1

私は、ほぼ2つのキーを持つ依存関係テーブルを作ることを念頭に置いています。柔軟性と正規化の向上を実現します(電線や配管工事が完了するまでは乾式壁などはできません) –

+0

しかし、タスクによっては連絡先情報を記入するための追加のフォームがあります。他の人は、選択肢が「ハウス検査を設定する」のように日付ボックスを有することがあり、ユーザはハウス検査をチェックしてから、それが行われる日付を設定することができる。 PHPでそれをどのようにコード化しますか? –

+1

@Chris:これを行う1つの方法は、タスクに関連するフィールドを持つ別のテーブルを持つことです。各行にはTaskID、FieldNameがあります。それがあなたのテンプレートです。次に、別のテーブルには、私が今説明したテンプレートテーブルのフィールドを参照するIDを持つ特定の「塗りつぶし」フィールドがすべて含まれています。とにかく、リレーショナルデータベースを読んでいないのであれば、これらのすべてがどのようにデータベースに収まるかを見るためのフレームワークが得られるからです。 – John

0

私はあなたがTaskFreakを記述していると感じています.TaskFreakはPHPで書かれています。たぶんあなたは自分のコードから学ぶことができます。ここでダウンロードできますhttp://www.taskfreak.com/original/download

+0

TaskFreakには依存関係がありません。彼らは、タスクAがタスクBの前に完了していることを確認しています。最良のシナリオでは、これを表すために優先順位を使用する必要があります。 –

関連する問題