16章データベース

Webのような現代的なソフトウェアアプリケーションは、機能の実現に「状態」を利用します。「状態」は、ログイン中のユーザ、閲覧ページ、行った設定など、特定のリクエストに対するアプリケーションの現在の状況を表す手段です。

通常、コードは、状態に依存しないように記述され、ユーザのセッションの状態に依存せず同様に動作します(これにより、複数のユーザに対応するアプリケーションでシステムの動作が予測可能となります)。Webアプリケーションがデプロイされる際も、状態に依存しない方法で行われます。

しかし、状態はユーザのアクティビティを追跡し、ユーザがアプリケーションとインタラクションを続ける上で、アプリケーションの振る舞いを進化させるために不可欠です。状態に依存しないコードが状態を認識するためには、どこからか状態を取得しなければなりません。

通常、これにはデータベースを使用します。データベースは、構造化されたデータを格納する効率的な方法です。PHPで扱うデータベースには、リレーショナルデータベース、キーバリューストア、グラフデータベース、ドキュメントデータベースの4種類があります。

リレーショナルデータベース

リレーショナルデータベースは、データをオブジェクトとその関係性に分解します。書籍のような特定のエントリはテーブルの行として表現され、列には書籍に関するデータが格納されています。列にはそれぞれ、タイトル、ISBN、タイトル名などが含まれます。リレーショナルデータベースで覚えておくべき重要なことは、異なるデータ型は異なるテーブルに格納されるということです。

bookテーブルの1つの列を著者の名前とすることもできますが、まったく別のauthorテーブルを持つ可能性の方が高いでしょう。このテーブルには著者の名前、おそらく略歴、メールアドレスが含まれます。両方のテーブルには別々の ...

Get PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.