MySQL入門

絶対データと相対データ

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
データベースにデータを挿入するときは、他のデータによって影響があるような「相対的」な情報は入れるべきではありません。ここでは、ランキングを作るケースを例に、紹介してみましょう。
講師:
08:20

字幕

ここでは絶対データと相対データという ことについて紹介していきます データを並び変える時に 数字などで並び変えることができるのですが この時にそのデータが絶対的なデータなのか それとも相対的なデータなのかということは 非常に重要な要素になります 実際に確認しながらやっていきましょう ではここでは MAMP の スタートページを開いて phpMyAdmin から データベースを1つ作成します そしてここに「インポート」で 予め準備しました こちら lesson_03_07.sql というファイルを選んで 「実行」を押して下さい すると item table というのが出来上がって このような7件ほどのデータが入った データベースが見つかります こちらを元にやっていきましょう そして order by という句を使えば このように price が小さい順に並べるといようなことは 簡単にできます しかし例えばですけれど これを人気のある順に 並べたいというような場合 1つフィールドを追加しなければなりません ただこの時に注意しなければ ならない点が1つあります 例えばここでは1つ カラムを追加してみましょう こちら item table の構造を 見た状態で 一個のカラムを追加します 「テーブルの末尾」に追加するで 「実行」ボタンをクリックし ここに rank ということで INT のフィールドを追加しましょう そしてここで「表示」として こちらに rank をそれぞれ入れていきます update 構文で入れていっても 良いのですけど こちらのデータの鉛筆マーク 編集マークをクリックして 順位を入れていきたいと思います 例えばここでは「みかん」を 1 「あおりんご」を 2 それから「イチゴ」を 3 位 順位は適当で構いません このように設定してみて下さい これですべての順位が設定できました では この rank を元に 並び替えを行ってみましょう SQL を実行し select * from item_table order by として rank を使います 「実行」ボタンをクリックすると この様に 1 位から 7 位までということで 人気順に並べることが出来ました 一見すると うまくいっているように 見えるのですが 例えばここで「イチゴ」がある季節 急激に売れて 「イチゴ」が一位になったとしましょう その場合この「いちご」の rank を 一位に変更するわけですが そのままでは残念ながら うまくいきません このままですと「みかん」も 1位のまま そして「あおりんご」が2位となり 3位が不在となってしまいます そのためここでは 「イチゴ」を1位にするために わざわざ「みかん」と「あおりんご」の データを変更し 2位 3位と書き換えていかなければ いけないことになります これですとデータベースとして 非常に効率が悪いですし 書き換え間違いなどがあった場合に データが正しくなくなってしまいます そのためここで rank という フィールドを追加したのは 間違いだったということになります この rank というような データのことを 相対データ つまり 他のものが どのような順位になっているかによって 自分の順位が変化するという 相対的な情報になります このような相対的な情報というのは データベースでは非常に扱いづらい 情報になりますので 基本的にはそういった情報を データベースに含めるべきではありません では正しいこういったランクの作り方 というのをご紹介しましょう まず今作った rank という フィールドについては 必要ありませんので 削除します こちらフィールドの 削除ボタンをクリックするか またはチェックを付けて下のこちらの 削除ボタンをクリックして下さい 本当に削除しますか ということで このように削除することができます では続いてこちら もう1度一個のカラムを追加し テーブルの末尾に今回は count という名前のフィールドを追加します INT 型で結構です 保存をすると このように count というのが出来上がります では改めて表示をし それぞれの売れた数というのを 入力していきたいと思います 例えば「イチゴ」が4個売れました 「リンゴ」は6個売れました そして「みかん」は8個売れました 「あおりんご」は2個売れました 「オレンジ」はこちら4個売れました そして「キャベツ」が 9個売れました 「キュウリ」が1個売れました という形で売れた数を このように入力していきます ではこの情報を元に ランキングを作るとしたらどうなるでしょう SQL のタブをクリックし select * item_table order by count desk とします 「実行」ボタンをクリックすると このように count が大きい順に並びました この count が大きいというのは つまり売れた数が多いということは 売れたランキングがここに 表示されていることになります 1位に売れたのが「キャベツ」 2位に売れたのが「みかん」 というような具合です このように順位を作りたい場合には 相対情報ではなく 売れた数というような 絶対情報を入れる必要があります 例えばこの場合 「りんご」が今回たくさん売れて 5個売れたとしましょう この場合変更ボタンをクリックして 5個を足します そのため 11個になります 「実行」をクリックしますと このような形で順位が変化します 「りんご」が1位になり 「キャベツ」が2位になりました しかしこの「キャベツ」の情報は 一切書き換える必要がありません これが絶対情報 絶対のデータと言われるものの性格です このようにデータベースに データを入れる時には 後で何に使うのかというようなことを 考えることも必要ですが そのデータを変更する時に 他のデータに影響がないかどうか という相対的かそれとも絶対的か ということも考慮しなければ テーブルを作ることができません テーブル設計の時に この点も気を付けて設計をしていきましょう

MySQL入門

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

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

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

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

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