Laravelのデータベース(SQL)とは?初心者でもよく分かる図と例でやさしく解説。

Laravel(PHP)におけるデータベース(SQL)とは?初心者でもよく分かる図と例でやさしく解説。

[st-kaiwa3 r]LaravelやWordPressとかのPHPを使ってると必ずデータベースって言葉が出てくるけど、イマイチなんなのか分かってないんだけど・・[/st-kaiwa3]

データベースは、ウェブサイトのフォームから投稿されたデータを保管しておくスペースの事です。

例えば、ブログなら、テキストエディタ(投稿フォーム)上に記事を書いて、
保存ボタンで内容を保存しますよね。

その投稿記事、投稿タイトル、投稿日、そういったデータを保存しておく場所がデータベースなんです。

下の画像のような知恵袋サイトやフォーラムだったら、

投稿された質問や回答、投稿のタイトル、投稿日、コメント、いいね数、検索履歴、ログインID、パスワード、投稿者のプロフィール・・そういったブラウザから入力された情報を保存するスペースがデータベースなんです。

[st-kaiwa3 r]つまりサイト上のあらゆるフォームから入力されたデータを保存しておく場所がデータベースって感じでOK?[/st-kaiwa3]

[st-kaiwa1 r]

そういう事。お問い合わせフォームのように、データベースに保存せず直接Emailとして送信するフォームもあるけど、お問い合わせフォームの内容をデータベースに保存する事も可能なんだ。

いいねボタンや投稿日付など、なにか数値が変わるもの、お知らせメールを受け取るかどうかのチェックボックスのONOFF、そういう変動する情報もデータベースで保存しておけるんだ。

[/st-kaiwa1]

[st-kaiwa3 r]ちなみに、投稿された画像はデータベースに保存されるの?[/st-kaiwa3]

[st-kaiwa1 r]基本的に画像やビデオ、音声みたいなメディアはStorageフォルダに別途保存されて、リンクだけをデータベースに保存するよ。まぁ、画像をbase64っていうマトリックスみたいな文字列に変換すれば、データベースに保存も可能だけどね。あくまで投稿された文字情報を保存するのが、データベースって感じ[/st-kaiwa1]

データベースの構造(テーブル、カラム)

データベースは画像のような構造になってます。

まずデータベースは、サイトごと、アプリごとに作ります。上の画像なら、liketestという名前のサイト用のデータベースをまず作ります。

例えば、口コミサイトを作ってるなら、
投稿本文、投稿タイトル、投稿者、投稿日、投稿についたいいね数など、
投稿に関するデータをまとめて保存するテーブル(posts table)、

そして、ユーザーID、ユーザー名、パスワード、メールアドレス、といったログインユーザーの情報を保存するテーブル(users table)といった具合に、

一緒に保存しときたい項目(カラム/column)をまとめてるシートがテーブルです。

[st-kaiwa3 r]

つまりExcelに例えると、

Book1ファイルがデータベース、sheet1,2,3がテーブル、ABCDEがカラムって認識でOK?

[/st-kaiwa3]

[st-kaiwa1 r]全くその通り。データベースはExcelのようなスプレッドシートなんだ。[/st-kaiwa1]

では、実際のデータベースを見てみましょう。

例えば、辞書サイトjapaslangというデータベースのpostsテーブルを開いてみると、下の画像のようにExcelのようなシートが表示されます。

下の画像が実際のサイトのページです。見比べてみてください。

この投稿の情報がすべて入ってますよね。

上の画像のようなウェブページが表示される時に、データベースからその都度必要な情報を取り出して表示してるんです。

laravelのblade,controller,routesの関係図1

例えば、Laravelなら、コントローラーというファイルが、データベースからそのページに必要な記事だけ取り出し、ブレード(サイト全体のレイアウトが書かれたファイル)にガコンとはめ込む事で、ページが表示されるようになってるんです。

Laravelのblade.phpとは?普通の.phpと何が違う?初心者必須の知識!

LaravelのController.phpとは?初心者向けにやさしく図入りで解説

Laravelのroutes(web.php)とは?超初心者向けに図解と実例でやさしく解説!

Laravel初心者が絶望するController,Blade,Routesの関係が図解でよく分かる!

データベースに出てくるMySQLとphpMyAdminとは?

[st-kaiwa3 r]ねぇ、さっきの図とかでMySQLやphpMyAdminっていう言葉が出てきたけど、あれは何?[/st-kaiwa3]

まず SQL とは、データベース自体を管理してるシステムの事です。

このSQLシステムでできたソフトが MySQL(MariaDB) です。他にも PostgreSQL、 SQLite などの似たソフトがあります。*MariaDBはMySQLの派生版みたいなものです。

大抵のレンタルサーバーには、MySQLが入ってます。

そして、このMySQLなどのデータベースの中身をExcelのような表示で見れるようにしてくれるのが、phpMyAdminです。

新しいテーブルを作ったり、カラムの中身を編集したりがExcel感覚で簡単にできるとっても便利なソフトです。

[st-kaiwa3 r]そっかぁ、データベースって投稿データをExcelのような形式で見やすく保存しとくスペースだったんだね。[/st-kaiwa3]

[st-kaiwa1 r]

そう、もしこのデータベースが壊れたら、君が丸1年かけて書いてきたブログの全データなんかが消えてしまうって事でもあるから、データベースのバックアップはまめにしっかり取っておいた方がいいよ。Cronって機能を使って自動的にバックアップを取る事も可能だね。手動でやる方法は下の記事に書いてあるよ↓

phpMyAdminでデータベースを丸ごとインポートのやり方。初心者でもできるように解説

[/st-kaiwa1]

シェアする

  • このエントリーをはてなブックマークに追加

フォローする