前の記事ではphpMyAdminの基本的な操作を記述しました。
この記事では実際にテーマを決めてデータベースを作っていきます。
テーマ
この記事を書く少し前に実際に作ったので、毎日の血圧の管理をDBでする、というテーマで行きたいと思います。
設計
まずはデータベースに何を保存するのかを決めます。
保存するもの
- 血圧の最高と最低
- 脈拍
- 測定した日時
保存するものの型
特に考えることもなくそのままです。
- 血圧
- 整数値 → INT
- 脈拍
- 整数値 → INT
- 測定した日時
- 日時 → DATETIME
データベースを作る
では以前の記事も参考にしつつデータベースを作ります。
左側のNewを選択して、データベース名に「health」としておきましょう。
参照順序は「utf8_general_ci」です。
テーブルを作る
では、血圧を保存するテーブルを作ります。
左からhealthを選択し、テーブル作成画面を表示します。
カラムの数は、血圧の上と下、脈拍、日時の4つと行管理用のSERIALを足して5つにしておきましょう。
名前は「blood_pressures」にしましょう。
カラム
上で書いた通りです。timingにはデフォルト値でCURRENT_TIMESTAMPを設定してもよかったかもしれません。
これで実行でテーブル完成です。
データを入力する
データ(行)を入力します。
blood_pressuresテーブルを選択し、計測した値を入力します。
2016/5/28の9時に計ってみたところ最高が110、最低が90、脈拍が80だったとするとそれをそのまま入れます。
これで28日9時の文が保存されました。
同様に別の日も計ったという体で値を入れていきます。
3件入力してみました。
データを検索する
保存するだけでは使ってる感がないのでこの中から条件に合致するものを検索するようにします。
上の検索タブを選択すると、検索フォームが表示されます。ここに検索したい値を入力します。
検索に使わないカラムは空白で大丈夫です。
とりあえず、脈拍が100を超えているものを検索したいと思います。
実行すると
表示されました。3件入力したうちの条件を満たした行だけ表示されました。
体重も管理する
血圧だけでなく体重も保存できるようにしたいと思います。
この際にカラムを増やすのではなく、テーブルを増やします。以前の記事で書きましたが、1テーブルには1要素です。
一緒にしてしまうと、例えば体重だけ測った日、血圧だけ測った日の取り扱いがとても難しくなってしまいます。
テーブルの構造を決める
簡単です。
- 測った日時
- 日付 → DATETIME
- 体重
- 小数 → DECIMAl
テーブルを作る
左のhealthデータベースを選択します。
テーブルの一覧が表示されるので、下にあるテーブルの作成から作りましょう。
テーブル名は「weights」、カラム数は「3」です。
こんな感じでしょう。
適当に2日分入力しました。こちらも血圧同様検索して必要なデータを抜き出したり、と言った事できます。
SQLを使わなければいけないので、phpMyAdmin上から簡単にできるわけではありませんが、例えば血圧と体重両方測った日のデータをまとめて表示するといった複数のテーブルにまたがった検索も可能です。
これはいずれ記事にするかもしれません。
まとめ
だいぶざっくりしてますが、実際データベースでする事は、このデータを保存すると入力されたデータから必要なものを探すの2点だけです。
なので、この2点がそれなりにでもできればデータベースを利用したツールも作っていけます。
次の記事ではSQLと呼ばれるDBを操作するプログラム的なものに少し触れます。