ホームページ >バックエンド開発 >PHPチュートリアル >データベース設計スキル2_PHPチュートリアル

データベース設計スキル2_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:26:12781ブラウズ

1. 複数のレコードに適用されるフィールドの独立したテーブルを作成します
2. これらのテーブルの値を外部キーで関連付けます

後から更新データを心配することなく追加できるように、URLの値を独立したテーブルに置きます重複した値について。また、主キー値を介してこれらのフィールドを関連付けます:
users
userId name company company_address
1 Joe ABC 1 Work Lane
2 Jill XYZ 1 Job Street
urls
urlId relUserId url
1 1 abc.com
2 1 x yz .com
3 2 abc.com
4 2 xyz.com
上に示したように、別のテーブルを作成し、users テーブルの主キー userid が url テーブルの外部キー relUserId に関連付けられるようになりました。現状はかなり改善されているようです。しかし、ABC 社に従業員レコードを追加したい場合はどうすればよいでしょうか?それとも200以上?この方法では、会社名と住所を再利用する必要がありますが、明らかに十分な冗長性がありません。したがって、第 3 レベルの正規化方法を適用します:
第 3 レベルの正規化フォーム
1. キーに依存しないフィールドを削除します
会社名と住所はユーザー ID とは関係がないため、独自のものが必要です。 company Id:
users
userId name relCompId
1 Joe 1
2 Jill 2
companies
compId company company_address
1 ABC 1 Work Lane
2 XYZ 1 Job Street
urls
urlId rel UserId url
1 1 abc.com
2 1 xyz .com
3 2 abc.com
4 2 xyz.com
このようにして、ABC companyが追加された場合でも、 Companies テーブルの主キー comId を users テーブルの relCompId という外部キーに関連付けます。


従業員は200人ですが、会社に記録は1件しかありません。ユーザー テーブルと URL テーブルは、不必要なデータの挿入を心配することなく、継続的に増加する可能性があります。ほとんどの開発者は、3 つの手順で形式化すれば十分であり、このデータベースの設計は企業全体の負担に簡単に対処できると考えています。この考えはほとんどの場合正しいです。 URL のフィールドに注目してみましょう - データの冗長性に気づきましたか?ユーザーがこれらの URL データを入力できる HTML ページが任意に入力できるテキスト
ボックスの場合は問題ありませんが、ドロップを通じて 2 人のユーザーが同じお気に入りを入力する可能性は低くなります。 -down メニュー、
ユーザーに 2 つの URL から入力するか、それ以上の URL を選択してもらいます。この場合、データベースは次のレベルの最適化 (4 番目のステップ) も行うことができます。ほとんどの開発者にとって、このステップは無視されます。これは、このステップが非常に特殊な関係 (これまで遭遇したことのない多対多の関係) に依存しているためです。私たちのアプリケーションで。




http://www.bkjia.com/PHPjc/531978.html

www.bkjia.com

本当

技術記事 1. 複数のレコードに適用されるフィールドの独立したテーブルを作成します。 2. 外部キーを介してこれらのテーブルの値を関連付けます。これにより、次のことが可能になります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。