繰り返しtodoの作成

現在、「週3日5キロランニングをする」のようなtodo管理を作成したいのですが、考案したものがどちらも帯に短し襷に長し状態なので、ご相談させてください。

要件としては以下です。

  • 繰り返しtodo(曜日選択)を設定できる
  • todoの達成率を登録することができる
  • 上記todoを編集することができる(繰り返し方法も)

考案したテーブルは以下の通り

  • todoテーブル

    • id
    • userid
    • todo
    • 曜日
    • 開始日
    • 終了日
  • todo_compテーブル

    • id
    • userid
    • todo_id
    • 日付
    • 達成率

このようなテーブルを作成し、ユーザーが繰り返しtodoを作成した際にtodoテーブルにデータを作り、ページ側では、開始日と終了日に入っていて、曜日も当該日と一致していれば表示するという形にしています。
また、当日にtodo一覧ページに来た際に、todo_compにデータを作成し、達成率を入れ、過去のtodoも同様に保存しております。

この形式ですと、大きく以下2点の問題があります。

  • 当日にtodo一覧ページに訪問しないと、compデータが作られないため、過去に0%達成率のtodoができないこと
  • 毎回当日compがあるかを確認するのに、ロード時間がかかる

そのため、todo登録時に一気にcompをすべて作成(List Shifter使用)すればいいかと思いましたが、こちらは繰り返しに対して編集ができないかと思っております。

もし良案がありましたら教えていただきたいです。

当日にtodo一覧ページに訪問しないと、compデータが作られないため、過去に0%達成率のtodoができないこと

毎回当日compがあるかを確認するのに、ロード時間がかかる

データがなければ達成率0%と表示してみてはどうでしょうか。

「いいね!」 2