これが質問または回答されたことが他にもある場合は、申し訳ありません-サーバーでPHPタスクをスケジュールしようとしている人に私の検索が失われ続けていると思うので、探しているものが見つかりません.
私の最初の自作アプリ (ガイド付きまたは指示付きのアプリではありません) として、キャンプのスケジューリング プログラムを構築しようとしています。ログイン、キャビン/グループの追加または削除、アクティビティ/グループの追加または削除、日付範囲の生成、およびそのデータから、スケジュールしたいものを選択して送信するためのものが既に構築されていますそれをスケジューラに渡し、新しい MySQL テーブルを作成して...
これは、私が立ち止まって、これについて正しく考えているかどうか疑問に思っているところです.
- スケジュールを新しく実行するたびに新しいテーブルを作成する必要がありますか?これはスケーラブルですか?
- MySQL テーブルにデータを入力する前に、配列をソートする必要がありますか?それとも、連続して入力してから、次の項目をソートしながら入力することはできますか?
最終的に、次のような他の要因を追加する必要があるため、ラウンドロビンだけを行うことはできません。
- このグループは、スケジュールされた最後の X 期間にこのアクティビティを実行しましたか? その場合は、別のものを選択してください。
- 常にアクティビティ リストの先頭から開始するとは限りません。そうしないと、一部のアクティビティが常にスケジュールされ、一部のアクティビティが常に最初に空のままになります。いくつかの要因を考慮して、重要性に優先順位を付けることができる場合もあります。
- 最初は、グループで日付のアクティビティをスケジュールしたいだけですが、別のスケジュール (キャビンが行うカヌー旅行) を考慮して、その日のスケジュールリストから除外できる機能も追加したいと思います。それらはなくなります。
並べ替えロジックで得られるヘルプは大歓迎です。ありがとう。
編集: あなたの提案に基づいて、IDと名前の列が2つしかない次のテーブルがあると考えています(ユーザーはいつでも更新/編集できます):
cabins
activities
次に、たとえば、日付エントリ (8 週間) 用の最大 56 列 + という名前とユーザーの列を持つ別のテーブルを追加します。
dates
次に、次のような別のテーブルがあります。
schedule
次のような列があります。
ID (primary Key)
User (logged in user that created this)
schedule_name (user defined name of schedule)
cabin (foreign key of a cabin)
period_001 (foreign key of first date in corresponding 'dates' table)
activity_001 (foreign key of an available activity which has been chosen to go here)
period_002 (...)
activity_003 (...)
etc...
次に、PHP ロジックは名前とユーザーでグループ化された行を要求するため、特定のユーザーのスケジュール名ごとに、キャンプで選択されたキャビンごとに 1 行 (例: 25 キャビンの場合は 25 行) になります。また、「dates」テーブルの各行には、特定のスケジュールの日付範囲全体が含まれています。
これはあなたが考えていたことですか?