MySQL入門

実用的なデータベースを作成するために

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
データベースの設計は、先々のことやそのデータをどのように利用するのかを深く考えて作らなければなりません。ここでは、この講座で使ったテーブルをもとに、より改良されたテーブル設計をしてみましょう。
講師:
09:41

字幕

ここでは実用的なデータベースを 作成するために としまして この講座を通じての全体的なまとめとして より実用的なデータベースを 作成するための方法などについて 紹介していきたいと思います この講座を通じてここでは genre_master それから item_table という テーブルを作成して来ました そしてこのような商品の一覧であったり ジャンルの一覧というものが このようにまとめられています もしまだ このデータベースが 準備できていないという場合には MAMP のスタートページから phpMyAdmin を起動し データベースとして mydb utf8_general_ci のテーブルを作成して下さい そして mydb の「インポート」という所から こちら「ファイルを選択」をクリックして lesson_03_13 を選んで インポートして下さい ではここで item_table についてですけれど 実はこの item_table には まだもう少し効率の悪い部分があります それはこの count という フィールドについてなんですが この count というフィールドは 商品が売れた数を記録しているフィールドです しかし今このままですと 歴代の count というのは このように記録されているんですが 例えば 先月 何個売れたのか 昨日 何個売れたのか というような細かな集計を 行うことはできません 本来このような集計の結果というのは SQL で求めるべきもので このようにデータとして 残すべきものではありません では少しその辺りを作り込んでいきましょう まず この count というフィールドを 削除してしまいます ここでは この count というフィールドの 削除ボタンをクリックして こちら OK をクリックし count を削除しましょう そして1つテーブルを作成します ここでは SQL を実行して create table とします そして item_log というテーブルを作製し id とし int primary key auto increment とします 更に item_id とし これを int とします 更にここでは count としまして これも int とし 最後に created としまして timestamp という型を使います timestamp という型は ここで初めて出てきましたが これも非常に便利な型なので ここで使ってみましょう ではこちらで「実行」を クリックします すると こちらテーブルが 出来上がっているかと思います こちら item_log というテーブルには どのような情報を入れるのかというと どの商品が何個売れたのか というのを その都度記録するテーブルです ではここに幾つかテーブルを入れてみましょう 例えばここでは insert into item_log としまして set item_id 1, count 今回3個売れたとします それから insert into item_log set item_id で 3番の商品が1個売れました このように この item_log というテーブルには その商品が売れる都度 このようにその商品の個数や id を 記録していくことになります では例えばここではこのように 2番の商品が立て続けに 何個も売れたというような log も残してみましょう これで「実行」ボタンをクリックします するとこれで正常にデータが入りました item_log を見ていきますと このように 商品の id と個数が見れるようになります そしてこの時 この created という フィールドを見ていくとわかるのですが ここには その商品を入れた 年月日というのが自動的に挿入されます これが timestamp という 非常に便利な型で MySQL 等 一部のデータベースにしか 搭載されていない機能ですが 使うと非常に便利なので 使っていくと良いでしょう ではこちらで実際に売れた数というのを 集計してみたいと思います SQL のタブをクリックし ここでは このような SQL を書いていきます select i item_name ですね そして sum として ここではこの後 item_log に l という短縮名を付けますので l . count としましょう そして from は item_table を i という短縮名 item_log を l という 短縮名で付けていきます where は i の id= が l の item_id として結合し group by としては l . item_id となります ではこちらで「実行」してみましょう すると このように 「いちご」が3件売れ 「りんご」が9件売れ 「みかん」が1件売れた ということがわかります このように log に記録しておいたものを 後から集計するようにすると 非常に便利なことがあります 例えば item_log の所の 日付を少し変えてみましょう 適当に何件かピックアップし これを変更します そしてこれをそれぞれ 9月の日付に変更してみましょう すると9月と10月に それぞれ売れたことがわかります ではこれで10月に何個売れたのか ということを判断してみたいと思います ではここでは select i item_name と sum の l . count とし from は item_table i と item_log l になります where として i . id と l . item_id なんですが ここで and としましょう そして l . created が 2012 の10月の1日よりも上 という形にします そして group by が l . item_id となります 10月1日も含めたい場合は ここを = にしましょう ではこちらで実行してみます するとこのように 「りんご」が7件 「みかん」が1件 というふうに変わりました これは10月に売れた数を 集計しています ではこれを今度は10月よりも 下というふうにしてみます 「実行」をクリックすると 今度は「いちご」が3件 「りんご」が2件 というふうに また件数が 変わっていることが確認できます このように この created と 名付けた timestamp 型のフィールドで 日付を絞り込んだりすることで 月ごとの集計や もちろん日ごとの集計もできます 場合によっては時間ごとの集計なども行えます このように非常に細かな集計が 行えるようになりますので log を記憶していくというのは データベースにとって 非常に重要な要素の1つになります 例えば何か SNS のような メンバー登録型のサイト等を作った場合 どのメンバーがいつログインをし いつログアウトをしたのか というようなことも log として 記録しておけば 毎月どのぐらいのお客さんが ログインをしたのか というような集計にも使えますし 場合によっては何か犯罪が起こった時に どのメンバーがその時間帯に ログインをしていたのかといったような セキュリティに関する調査 等にも使えますので log を残しておくというのは セキュリティ的な観点等から見ても 非常に重要です データを集計する必要が ありそうなものに関しては 数字だけを足していけばいいのか それとも細かな情報まで log として記録していったほうが良いのか といったようなことも含めて 検討していく必要があるでしょう またこのような log を残した場合 データ量は非常に膨大な数になります 例えば一年に一回メンテナンスをして 昨年のデータはバックアップデータとして残し データベースからは削除する というような運用のルールを決めたり もしくはテーブルを月ごとに作成する というような自動処理を行って できるだけテーブルが 重くなりすぎないようにする といった工夫も必要になってきます

MySQL入門

このコースではPHPとMySQLというデータベースを組み合わせたWebシステムを構築する手法について解説します。「データベースとはなにか」を説明したのち、プライマリーキーやリレーションなどの重要な用語についても解説しながら実際にデータベースを動かしていきます。

3時間14分 (29 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2013年12月31日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。