dポイントプレゼントキャンペーン実施中!

 公開されてるソースがあるのでそれを使えばいいんですが、プログラミングを学んでみたいという目的もあって、PHPの勉強を始めたところです。

 で、あるサイトで学んでるんですが、その中でMySQLというものも出てきました。

 データベースの勉強もここからが初めてで、四苦八苦しながらもなんとか読み進めていったんですが、今度はPHPとデータベースを組み合わせてブログを作ってみましょうという話になりました。

 もともとブログや掲示板を作りたくて勉強を始めたので願ったり叶ったりなんですが、ここで一つ疑問が。

 ブログってデータベース使ってましたっけ?(^_^;

 公開されてるソースの解説を見てみると、特にデータベースが必要というような表記もなく、PHPとHTMLとスタイルシートだけで作ってるように見えます。

 なので、もしかしたら余計な方向へ行こうとしてる?と、このままこのサイトで勉強を進めて良いものか不安になってしまいました(^_^;

 よく分かってない素人考えとしては、ブログの仕組みってPHPでHTMLファイルを作ってるだけというイメージなのですが、データベースは必要なのでしょうか?
 今はseesaaブログで借りてブログを書いていますが、仕組みが見えてないだけで、こういうブログもデータベースを使ってる?

 だとしたら公開されてるブログのソースは、データベースを使える人限定ってことになりますよね?

 ブログを作るのにデータベースは必要なのか?

 また、必要ないにしても、データベースを使った方が良い面があるのか?

 どうなんでしょうか?

A 回答 (5件)

拡張子が「.html」などであっても、ブログ運営においてデータベースはほとんどのケースで使われています。

URLは見かけ上の存在でしかない場合があります。以下に例を示します。

【例】 (URLエンコードは省略しています)

1. 以下のようなURLでユーザがアクセスしてくる
http://blog.example.com/programming/PHPはじめました!.html

2. サーバー側でリクエストURLが書き換えられる
http://example.com/blog.php?category=programming …はじめました!

WebサーバーソフトウェアにApacheを利用しているのであれば、.htaccessというファイルに設定を記述することでこのような機能を実現することが出来ます。URLがきれいになるメリットががあります。

では、データベースを使う場合と、XMLファイル等に保存する場合を比較してみます。

【データベース】
・セキュリティ的に強固。
・複雑な検索の実装が比較的容易で、実行速度も申し分ない程度に可能。
・後から仕様変更などの融通が利く。
・単純なことしかしない場合の性能は劣る。ただ、キャッシュをうまく使えばこの限りではない。

【XMLファイル】
・ファイルを設置する階層、アクセス権限などに注意しないと脆弱性となり得る。
・検索機能の実装が困難。
・仕様変更に弱い。
・単純なことしかしない場合の性能は抜群。

何でもかんでもリレーショナルデータベースに頼りすぎるのはよくない、とよく言われますが、個人で小規模なブログを運営するだけであれば戸惑いなくそれを採用すべきであると言えるでしょう。小規模であればパフォーマンス面の心配はほとんど不要です。

PHPからデータベースを利用するサンプルを探すと、古い情報がよく出てきます。こういうものはセキュリティ的に問題があったりするので使わないようにしましょう。

・「mysql_query」などの関数
→ 現在は非推奨。絶対に使ってはいけない。

・「mysqli_query」などの関数
→ 使ってもOK。但し、後述するオブジェクト指向で書くやり方に比べれば古典的な方法になり、コードが汚くなりやすいため、あまりおすすめは出来ない。ただ、オブジェクト指向が全く分かっていない初心者でもとりあえず動くものは作れるというメリットはある。

・「mysqli」クラス
→ 推奨される。上記のオブジェクト指向型。設定次第で例外を扱えるようになる。

・「PDO」クラス
→ 最も推奨される。mysqliクラスよりも構成がシンプル。これを覚えるだけでMySQL以外のSQLiteなどの他のデータベースの操作も習得したことになり、汎用性に優れる。設定次第で例外を扱えるようになる。

MySQL入門
http://www.ipa.go.jp/files/000018731.pdf

PDO
http://www.php.net/manual/ja/book.pdo.php

PDOの利用
http://www.phpbook.jp/tutorial/pdo/

PHPオブジェクト指向入門
http://qiita.com/mpyw/items/41230bec5c02142ae691

PHPでデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 あんまりいろんなシステムを絡めると、表示速度が遅くなるかも知れないと懸念してましたが、はっきり言って個人ブログ程度なら、そんなに影響なさそうです。

 何より検索面やセキュリティ的に強固になるのは魅力的。
 ファイルを生成して置くだけのシステムで、その辺をどうするか想像すらできてませんでしたから(^_^;

 手抜きをしたいならレンタルで借りれば良いわけだし、どうせ勉強するなら皿まで喰らうつもりでやってみたいと思います。

お礼日時:2014/07/23 22:22

書いた記事を格納する場所が必要なんでデーターベースはブログでは必ず使っていると思います。


PHPとデーターベースの勉強を始めるのであれば是非データーベースを使ってブログを構築してくださいね。
データーベースを使った方がいいのは大量のデーターを格納しても安全性が高いのとデーターベースはSQLという言語が使えて検索機能を作る時に便利です。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 やはり共通する意見として、検索の話がありますね。
 実際、検索を考えたときに、サーバーにファイルを置くだけだとどうすれば良いのか分かりませんでしたが、MySQLが少し分かってくると、だいたいこんな感じでやれば良いのかな?ぐらいは想像できるようになりました。

 併せて勉強してみたいと思います。

お礼日時:2014/07/23 22:24

DBMSの利用は必須ではありません。

普通のファイルへのデータ保存でもブログシステム程度なら作ることは出十分出来ます。

ただ、今回の目的がプログラミングの学習のためと言うことなので、どうせならDBMSの勉強もした方が良いと思いますので、DBMSを使った方が良いでしょう。
DBMSの勉強はしたくないと言うことなら、一般ファイルで作っても良いです。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 正直、データベースは想像すらしてなかったんで面倒くさいというのが本音なんですが、別に仕事にしてるわけでもなく、時間はある方なので試しに勉強してみたいと思います。

お礼日時:2014/07/23 22:17

>ブログってデータベース使ってましたっけ?(^_^;



WordpressとかMovableTypeとかを「使ったこと」はありませんか?

ほとんどのブログシステムはデータベースの利用が前提です。いろいろな機能(カテゴリ指定での一覧とかキーワード検索とか)を実現したり処理速度を(データが増えても)落とさないようにするために必須と言ってもいいです。

細かい設定はインストーラがやってくれたりもしますので、「ブログを利用する」だけならデータベースの知識は要りませんが「システムを作る側」はそうはいきませんね。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 実はその二つ、聞いたことはあっても使ったことはないんですよ。なんだか難しそうだったんで(^_^;

 ブログにおいてのPHPの立場って、各ページのHTMLファイルを作るだけかと思ってました。
 PHPが分かるようになってくると、なんだかそれも違うことに気づくことができるようになりました。
 データベースを使った方が楽そうですね(^_^;

お礼日時:2014/07/23 22:15

投稿された記事やコメントを何らかの形で管理しなければいけません。



方法としては、記事やコメントをDBに登録して管理する方法と、テキストファイルで保存して管理する方法が考えられます。
件数が少ないうちはファイルでもいいでしょうが、件数が多くなるとファイルでは管理しきれなくなる可能性ができてます。
また、記事を検索する場合はDBを使っているほうが簡単に検索ができます。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 PHPを使ってhtmlファイルを作成すれば良いだけかと思っていましたが、確かに検索など考えるとDBを使った方が良いかもしれませんね。

 まだ覚えたてで「かもしれない」ぐらいでしか分かりませんが(^_^;

お礼日時:2014/07/23 22:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!