【第3回】Microsoft Listsで会議室予約システムのデータベースを作る

はじめに

どーも不定期更新のブログ「ガジェットぺろぺろ」の トビウオ師匠 です。
このブログでは、ガジェット好きの筆者が、実際に自腹で購入した製品を中心にレビューしています。

いわゆるスペック比較だけでなく、普段の生活や仕事の中で使ってみてどう感じたかを重視しています。
良いところはしっかり評価しつつ、合わなかった点や注意点も包み隠さず書くようにしています。

本記事が、あなたにとって後悔しない買い物の助けになれば嬉しいです。

前回のおさらい

前回は、Power Platform を利用するためのライセンス選定と学習環境の構築を行いました。

今回は、いよいよ会議室予約システムの開発を始めていきます。

Power Apps を使ったアプリ開発というと、画面の作成から始めたくなりますが、今回はその前にデータベースの設計から進めることにしました。

Power Platform はノーコード・ローコード開発ツールですが、システム開発であることに変わりはありません。

そのため、データをどのように管理するのかを最初に整理しておくことが、後々の拡張性や保守性にも大きく影響します。

今回は Microsoft Lists を利用して、会議室予約システムの土台となるデータ構造を設計していきます。

なお、ちょっと脱線しますが勉強用に参考書を3冊購入しました~

Power Platformには可能性を感じたので、がっつり勉強するためです

今回のゴール

今回は次の内容を目標に進めます。

  • 会議室予約システムに必要なデータを整理する
  • Microsoft Lists のリスト構成を設計する
  • 実際に Lists を作成する

今回は画面の作成までは行わず、Power Apps から利用できるデータベースを準備するところまでを目標にします。

まずは管理したい情報を整理する

最初に考えたのは、

「このシステムでは何を管理したいのか」

ということです。

会議室予約システムでは最低限、

  • どの会議室を利用するのか
  • 誰が予約したのか
  • いつ利用するのか

を管理できる必要があります。

さらに、

  • 利用目的
  • 予約状態
  • 作成日時

なども必要になってきます。

このように必要な情報を整理していくと、自然とデータベースの形が見えてきます。

1つのリストで管理するか、複数に分けるか

最初は、すべての情報を1つの Microsoft Lists で管理することも考えました。

例えば、

会議室定員開始終了予約者

のようなイメージです。

ただ、この構成では毎回会議室名や定員などの情報を持つことになります。

例えば会議室名を変更したい場合や、定員を変更したい場合には、複数のデータを修正しなければならなくなる可能性があります。

システムとして考えると、少し管理しづらい構成です。

そこで今回は、データの役割ごとにリストを分けることにしました。


今回採用するデータ構造

今回採用するのは、次の2リスト構成です。

  • 会議室マスタ
  • 予約リスト

会議室マスタでは、会議室そのものの情報を管理します。

一方、予約リストでは、「どの会議室を」「いつ」「誰が利用するか」という予約情報だけを管理します。

このように役割を分けることで、データの重複を減らし、メンテナンスしやすい構成になります。

Power Apps 側から見ても扱いやすくなるため、今回はこの構成を採用しました。

会議室マスタを設計する

まずは会議室の情報を管理するリストを作成します。

今回管理する項目は以下のようにしました。

列名選定理由
会議室名1行テキスト名称は自由入力となるため。Power Appsでも表示用として利用します。
階数数値今回は3階建てを想定していますが、将来的に増える可能性も考え、数値型にしました。ソートもしやすくなります。
定員数値人数なので数値型を選択しました。Power Appsで「○人以上入れる部屋」のような検索にも利用できます。
利用可否はい/いいえ工事中や利用停止などを簡単に管理できるようにしました。
備考複数行テキスト設備情報など自由に入力できるようにしています。

必要最低限の項目に絞っていますが、今後設備情報などを追加することも考えています。

階数は数値がいいか、選択肢がいいか

階数は「1階」「2階」「3階」しかないため、選択肢型でも問題ありません。

ただ今回は、将来的に建物やフロアが増える可能性も考え、数値型を採用しました。

また、Power Apps 側で並び替えやフィルタリングを行う場合も、数値型の方が扱いやすいケースがあります。

タイトル列はどうする?

Microsoft Lists を新しく作成すると、必ず 「タイトル」 列が作成されます。

最初は、

「会議室名をタイトル列にすればいいのでは?」

とも考えました。

実際、この方法でも問題なく運用できます。

ただ、今回はあえて タイトル列はそのまま残し、「会議室名」という列を別に作成 することにしました。

その理由

理由はいくつかあります。

① タイトル列は特殊な列だから

タイトル列は Microsoft Lists の既定列であり、削除することはできません。

また、他の列とは少し扱いが異なるため、後から設計を変更する際に制約となることがあります。

② 項目名を分かりやすくしたい

Power Apps や Power Automate を作成していると、

ThisItem.Title

よりも、

ThisItem.会議室名

の方が、何のデータを扱っているのか直感的に分かります。

特に今回のシリーズでは、学習用ということもあり、可読性を重視しました。

③ 将来的な拡張を考慮

今回は会議室マスタを作成しますが、今後さまざまなリストを作る予定です。

そのたびにタイトル列へ別々の意味を持たせるよりも、「タイトルは既定列」「実際のデータは専用列」というルールにしておく方が、設計を統一しやすいと考えました。

今回の方針

そのため、このシリーズでは タイトル列は既定列として残し、業務で利用するデータは専用の列として作成する 方針で進めていきます。

もちろん、タイトル列を利用する設計でも問題ありません。

今回は、保守性や分かりやすさを優先して、このような設計を採用しました。

予約リストを設計する

続いて予約情報を管理するリストを作成します。

こちらは実際の予約データを保持するためのリストになります。

今回作成する項目は以下の通りです。

列名選定理由
会議室参照(Lookup)会議室マスタを参照します。同じ会議室名を何度も入力しないためです。
開始日時日付と時刻予約開始時刻を管理します。
終了日時日付と時刻予約終了時刻を管理します。
予約者ユーザー(Person)Microsoft 365 のユーザー情報を利用します。メールアドレスやTeamsとの連携も容易になります。
利用目的複数行テキスト会議内容は長くなる可能性があるためです。
予約状態選択肢(Choice)「予約中」「キャンセル」「利用終了」など、決まった値のみ入力できるようにします。
備考複数行テキスト自由入力欄として利用します。

今回はできるだけシンプルな構成にしていますが、今後必要になれば項目を追加していく予定です。

実際に Microsoft Lists を作成する

設計ができたので、ここから実際に Microsoft Lists を作成していきます。

今回は Teams から Lists を作成し、Power Apps や Power Automate から利用できるよう準備していきます。

実際の作成手順についてはスクリーンショットを交えながら紹介していきます。

まずは、Teamsにチーム、チャネルを作成します。この配下にリストを作成するイメージです

開発チャネルを開いたら、上のタブをの+をクリックして、アプリを選択します

アプリの一覧が出てくるので、リストを選択

保存を押せばリストが追加されます

タブにリストが追加されました

まだ、初期状態なのでこんな表示になります。ここは新規作成をクリックします

開始する方法は、リストを選択

リストの名前を設定する画面が表示されるので、「会議室マスタ」を入力して、作成

これで、会議室マスタのリストが作成されました。

まだ、初期状態なのでタイトルしか表示されていません。また、表示されていないだけで作成日などの情報も実はリストで持っています。表示方法はのちほど説明

まずは、必要な列を追加していきます。

必要な列は以下の通り

項目内容
会議室名会議室の名称
階数設置フロア
定員利用可能人数
利用可否利用停止中かどうか
備考補足情報

列の追加をクリックして、テキストを選択して、次へ

右端に作成する列の詳細を入力する画面が表示されます。以下のように設定しました。

すると、こんな感じで会議室名の列が追加されました

この調子で他の列も作成していきます。

こんな感じで会議室マスタが完成!!

適当に実データも入れてみました

いいですね、この時点でなんかDBぽくなりましたね

予約リストもサクッと作る

同様に予約リストもサクッと作りました

列名選定理由
会議室参照(Lookup)会議室マスタを参照します。同じ会議室名を何度も入力しないためです。
開始日時日付と時刻予約開始時刻を管理します。
終了日時日付と時刻予約終了時刻を管理します。
予約者ユーザー(Person)Microsoft 365 のユーザー情報を利用します。メールアドレスやTeamsとの連携も容易になります。
利用目的複数行テキスト会議内容は長くなる可能性があるためです。
予約状態選択肢(Choice)「予約中」「キャンセル」「利用終了」など、決まった値のみ入力できるようにします。
備考複数行テキスト自由入力欄として利用します。

ちょっとだけポイントがあるとすると、会議室が参照であること

これは、すでに作った会議室リストから参照して、値を引っ張ってくる列です

こんな感じで、会議室マスタから、会議室名を引っ張ってくるよって設定をします

また、予約状態は選択肢で作りました。予約中、キャンセル、終了の3つの状態です

こんな感じで、予約リストも完成

設計メモ

今回採用した構成

  • 会議室マスタ
  • 予約リスト

採用した理由

  • データの重複を減らすため
  • 会議室情報を一元管理するため
  • 将来的な拡張を考慮するため
  • Power Apps から扱いやすい構成にするため

採用しなかった案

  • すべてを1つのリストで管理する構成

シンプルではありますが、データの重複や保守性を考えると、今回は採用しませんでした。

次回

次回はいよいよ Power Apps を使って、今回作成した Microsoft Lists を読み込み、会議室予約システムの画面を作成していきます。

まずは一覧画面から作成し、実際に予約データを表示できるところまで進めていく予定です。

以上、簡単ですが【第3回】Microsoft Listsで会議室予約システムのデータベースを作るでした~