16章データベース
Webのような現代的なソフトウェアアプリケーションは、機能の実現に「状態」を利用します。「状態」は、ログイン中のユーザ、閲覧ページ、行った設定など、特定のリクエストに対するアプリケーションの現在の状況を表す手段です。
通常、コードは、状態に依存しないように記述され、ユーザのセッションの状態に依存せず同様に動作します(これにより、複数のユーザに対応するアプリケーションでシステムの動作が予測可能となります)。Webアプリケーションがデプロイされる際も、状態に依存しない方法で行われます。
しかし、状態はユーザのアクティビティを追跡し、ユーザがアプリケーションとインタラクションを続ける上で、アプリケーションの振る舞いを進化させるために不可欠です。状態に依存しないコードが状態を認識するためには、どこからか状態を取得しなければなりません。
通常、これにはデータベースを使用します。データベースは、構造化されたデータを格納する効率的な方法です。PHPで扱うデータベースには、リレーショナルデータベース、キーバリューストア、グラフデータベース、ドキュメントデータベースの4種類があります。
リレーショナルデータベース
リレーショナルデータベースは、データをオブジェクトとその関係性に分解します。書籍のような特定のエントリはテーブルの行として表現され、列には書籍に関するデータが格納されています。列にはそれぞれ、タイトル、ISBN、タイトル名などが含まれます。リレーショナルデータベースで覚えておくべき重要なことは、異なるデータ型は異なるテーブルに格納されるということです。
bookテーブルの1つの列を著者の名前とすることもできますが、まったく別のauthorテーブルを持つ可能性の方が高いでしょう。このテーブルには著者の名前、おそらく略歴、メールアドレスが含まれます。両方のテーブルには別々の ...