ホームページ > バックエンド開発 > PHPチュートリアル > データベースの形式化と設計スキル(1)_PHPチュートリアル

データベースの形式化と設計スキル(1)_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:02:00
オリジナル
773 人が閲覧しました

動的な Web サイトの設計において、データベース設計の重要性は自明のことです。適切に設計されていない場合、クエリが非常に困難になり、プログラムのパフォーマンスにも影響します。 mySQL データベースと Oracle データベースのどちらを使用している場合でも、形式化されたテーブル設計を通じて、PHP コードを読みやすく拡張しやすくすることができ、これによりアプリケーションのパフォーマンスも向上します。
形式化とは簡単に言えば、テーブル設計における冗長性や不整合な従属を排除することです。この記事では、設計において知っておくべき形式化テクニックの 5 つの段階的なプロセスについて説明します。これにより、実現可能で効率的なデータベースが確立されます。この記事では、悪用される可能性のある関係の種類についても詳しく分析します。
ここでは、ユーザーの名前、会社、会社の住所、およびいくつかの個人的なお気に入りまたは URL を保存するユーザー情報テーブルを作成すると仮定します。最初に、次のようなテーブル構造を定義します:
ゼロ ステータス フォーム
ユーザー
name company company_address url1 url2
Joe ABC 1 Work Lane abc.com xyz.com
Jill XYZ 1 Job Street abc.com xyz.com
正規化は実行されないため、この形式のテーブルをゼロ状態形式と呼びます。 url1 フィールドと url2 フィールドに注意してください。アプリケーションで 3 番目の URL が必要な場合はどうすればよいでしょうか。この方法では、テーブルに追加の列を追加する必要がありますが、これは明らかに良いアイデアではありません。スケーラブルなシステムを作成したい場合は、最初の正規化形式の使用を検討し、それをテーブルに適用する必要があります。
正規化形式の第1レベル
1. 各テーブル内の重複グループを削除します
2. 関連データのセットごとに独立したテーブルを作成します
3. 主キーを使用して関連データの各セットを識別します
上記のテーブルは明らかですは上記の最初のルールに違反します。では、3 番目のルールの主キーは何を意味するのでしょうか?非常にシンプルで、自動増加する一意の整数値を各レコードに追加するだけです。この値により、同じ名前を持つ 2 つのレコードを区別できます。最初のレベルの正規化を適用すると、次のテーブルが得られます:
users
userId name company company_address url
1 Joe ABC 1 Work Lane abc.com
1 Joe ABC 1 Work Lane xyz.com
2 Jill XYZ 1 Job Street abc .com
2 ジル ここで新たな質問が来ました。ユーザー テーブルにレコードを挿入するたびに、すべての会社データとユーザー データを繰り返す必要があります。これにより、データベースが以前よりも大きくなるだけでなく、エラーが発生しやすくなります。したがって、まだ第 2 レベルの形式化を行う必要があります。


http://www.bkjia.com/PHPjc/631085.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631085.html技術記事動的な Web サイトの設計において、データベース設計の重要性は自明のことです。適切に設計されていない場合、クエリが非常に困難になり、プログラムのパフォーマンスにも影響します。 myS を使用しているかどうかは関係ありません...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート