DB活用での極端にローコストなToDoリスト運用を追求してみた #Notion

データベースを活用しつつ、スタッフ数が増えてもメンテナンスすべきレコード数がほとんど増えないToDoリストがどうにか成立できないかと四苦八苦した末に至った結果を書いてみました。
2023.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ToDoリストをデータベース運用していてやや困った状態になりました。Confluenceから移行されたページをそのままデータベースのレコードとしたためにページへToDoを直接埋め込む運用となっていましたが、ToDoが増えた際に既にToDoリストを完了していたスタッフへの対応がし辛いということ。個別対応となることが多いのですが、確認コストは人数分だけ増えていきます。

なるだけ対応漏れを防ぎつつ、今後のToDoリスト更新時の作業コストも減らせるやり方を検討した過程と、たどり着いた方法について書いてみました。

ToDoリスト更新手段の検討

当初は完了していたToDoリストに追記することも考えましたが、人数分の個別追記となるとなかなかの手間となります。修正を一箇所に集中できるToDo項目のデータベース化も検討しましたが、運用時にはやや難点があります。

  1. 増加したToDoを既存メンバーにも充てる際に、過不足なくローコストにて各位へレコードを追加する手段がない
  2. ToDo内容そのものに更新が発生した場合に、人数分のレコードへもれなく修正を対応させるコストが高い

1についてはボタン機能でいけそうに見えますが、追加した項目分だけボタンを用意する必要がでてきます。現在のボタン機能には既存項目を利用した条件分岐が備わっていないため、一つのボタンで工面することができません。

2はタグ等を利用してのフィルタリングとするといけそうですが、ロックしない前提のレコードであるために何らかの個別編集にてフィルタから漏れる可能性は十分にあります。そもそも人数が増える毎にToDo用レコードが増えること自体、誤操作による要修正のリスクが増える要因でもあるため避けたいものです。

出来る限りスタッフが増えることによるレコード増をなくし、ToDoが増えても対応コストはほぼそのままになる方法を検討した結果、ユーザ名操作とたどり着きました。

ユーザ名によるチェック

レコード内に「ユーザ」のプロパティをもたせて、ToDoを済ませたスタッフが「ユーザ」欄に自身の名前をいれるだけです。完了状況とToDo内容把握のため「未チェック」と「チェック済み」の2ビューを用意し、「ユーザ」欄に自身が入っているかどうかでフィルタリングします。

未チェックの場合。「ユーザ」プロパティの項目名を「対応済」としています。

この手法のポイントはToDo項目のレコード自体が各1で済むことです。自由記述の項目を用意していない場合はスタッフ毎にページを用意する必要もなくなります。万が一必要であればコメント欄で済ませるのもありでしょう。今回はこれまで運用していたToDoリストが単にチェックボックスのみの構成だったため、スタッフ毎のページ準備も不要となります。

発生する労力としては、既存のチェック済ToDoをスタッフ各位に転記してもらうか、全員分を纏めて転記するか、の2通りでしょう。

なお、ToDoの項目をページ内でセクション毎に分けて表示させたかったため、「セレクト」プロパティにて項目を分類し、「セレクト」プロパティに対してフィルタで絞り込みした上で、各セクション毎に「未チェック」と「チェック済み」の2ビューを追加しています。

あとがき

自由記述の有無で運用が変わってきますが、チェック欄のみでの運用であればチェック後に「ユーザ」プロパティへの追加という手続きが一番シンプルではないかと思います。サブアイテムにて自由記述に対応するという手もありますが、今回は過去に需要がなかったこともあり省いています。

ToDoリストの管理に悩んでいる場合には一つの手段としておすすめです。