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

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

Jul 13, 2016 pm 05:26 PM
一度三つ関係存在する基本意味スキルデータデータベースデザイン

4 番目の正規化形式を定義する前に、まず 3 つの基本的なデータ関係、1 対 1、1 対多、多対多について触れたいと思います。最初の正規化されたユーザー テーブルを振り返ってみましょう。 url フィールドを別のテーブルに配置すると、users テーブルにレコードを挿入するたびに、url テーブルに行が挿入されます。 1 対 1 の関係が得られます。users テーブルの各行に対して、urls テーブルには対応する行が存在します。私たちのアプリケーションにとって、これは実用的でも標準でもありません。
次に、2番目の正則化の例を見てください。各ユーザー レコードについて、テーブルではレコードの複数の URL を関連付けることができます。これは 1 対多の関係であり、非常に一般的な関係です。
多対多の関係の場合、少し複雑になります。 3 番目の正規化された形式の例では、1 人のユーザーが多数の URL に関連付けられており、
複数のユーザーが複数の URL に関連付けられるように構造を変更して、複数の 1 対多の構造を取得できるようにしたいと考えています。議論する前に、テーブル構造の変更を見てみましょう
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 url
1 ABC.com
2XYZ.com 。かなり奇妙な url_relations テーブルを作成しました。そのテーブル内のフィールドはすべて主キーまたは外部キーです。このテーブルを通じて、urls テーブル内の重複する項目を削除できます。 4 番目の正規化形式の具体的な要件は次のとおりです:
4 番目の正規化形式
1. 多対多の関係では、独立したエンティティを同じテーブルに格納することはできません






理由としてのみ適用されます。多対多の関係に依存するため、ほとんどの開発者はこのルールを無視できます。ただし、場合によっては、この
の例のように、同じエンティティを分離し、関係を独自のテーブルに移動することで URL テーブルを改善した場合のように、非常に実用的になることがあります。
理解しやすいように、具体的な例を挙げてみましょう。以下では、SQL ステートメントを使用して、joe に属するすべての URL を選択します:
SELECT name, url FROM users, urls, url_relationswheresurl_relations.popularUserId = 1 AND
users。 userId = 1 AND urls.urlId = url_relations. AssociatedUrlId
各人の個人情報と URL 情報を繰り返し処理したい場合は、次のようにすることができます:
SELECT name, url FROM users, urls, url_relationswheresusers.userId = url_relations.popularuserId AND

urls.urlId = url_relations.popularUrlId 正規化の 5 番目のレベル 1. 元のテーブルは、それから分離されたテーブルを通じて再構築可能でなければなりません この規定を使用する利点は、作成するすべてのテーブルの分離されたテーブルに冗長な列が導入されないことを保証できることです。すべて実際に必要な大きさ
正規化の 1 番目のレベルもありますが、これは一般的ではなく、少し難解で、ほとんどの場合は不要です。その原則は次のとおりです:
。このルールを適用することをお勧めしますが、非常に大規模なデータ セットを扱う場合を除き、このルールを使用する必要はありません。
この記事があなたのお役に立ち、これらの形式化ルールをすべてのプロジェクトに適用するのに役立つことを願っています。これらのメソッドがどこから来たのか疑問に思われるかもしれませんが、最初の 3 つの正規化規則は 1972 年に E.F. コッド博士の論文「データベースのリレーショナル モデルのさらなる正規化」で提案され、残りの規則は理論化されました。後に集合論と関係数学者となる。コメント: よく言われるように、テーブルを細かく分割しすぎると、テーブル間のさまざまな関連付けが必要になり、クエリが複雑になり、効率も低下する可能性があるため、場合によっては、物事のレベルを逆転させる必要があります。これらの形式化は、実際のアプリケーションでは、プロジェクトの規模に応じて、より合理的なテーブル構造を設計するために必要に応じていくつかのテストを実行できます。




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

www.bkjia.com

tru​​e

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

技術記事

4 番目の正規化形式を定義する前に、まず 3 つの基本的なデータ関係、1 対 1、1 対多、多対多について触れたいと思います。最初に正式化した私たちを振り返ってみましょう...


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール