リアルタイム データの急速な成長とアプリケーションの継続的な開発に伴い、PHP プログラミングにおけるデータベース正規化設計の重要性がますます高まっています。これは、データ構造の最適化、データの複雑さの軽減、データ処理効率の向上、およびデータを削減する エラーのリスク。この目的を達成するために、この記事では、正規化されたデータベース設計の実現に役立つ PHP プログラミングのベスト プラクティスをいくつか紹介します。
第一正規形 (1NF)
第一正規形とは、データ テーブルの各フィールドを原子値に設定すること、つまり、各セルに値が 1 つだけ含まれるようにすることを指します。データの重複は避けられます。 PHP プログラミングでは、複数のテーブルを使用して 1NF 設計を実装できます。例をいくつか示します。
1.1 列の分割
次のテーブルを考えてみましょう:
user_id | name | 電子メール | アドレス |
---|---|---|---|
1 | John Doe | john@example.com | 123 Main St |
#上の表では、フィールド「住所」に複数の値が含まれています。したがって、次のように個別のテーブルに分割できます。
name | ||
---|---|---|
John Doe | john@example.com |
user_id | address | |
---|---|---|
1 | 123 Main St |
customer_name | customer_email | 製品名 | 価格 | 数量 | 合計 | |
---|---|---|---|---|---|---|
John Doe | john@example.com | ウィジェット | 100 | 1 | 100 | |
ジェーン ドゥ | jane@example.com | ガジェット | 75 | 2 | 150 |
customer_id | product_id | price | 数量 | 合計 | |
---|---|---|---|---|---|
1 | 1 | 100 | 1 | 100 | ##2 |
2 | 75 | 2 | 150 | ##customer_id | name |
1 | Widget
第 2 正規形 (2NF)
第 2 正規形は、冗長データの発生を避けるために非主キー列を分離することを指します。 1NF 規格を満たすテーブルは通常、2NF があると見なされます。
次の形式を考えてみましょう:
##user_id
address | country | city | state | zip | |||
---|---|---|---|---|---|---|---|
john@example.com | 123 Main St | USA | ニューヨーク | NY | 12345 | 上の表では、「住所」の情報は「国」、「市」、「州」、「郵便番号」に分割できます。これを次のように別のテーブルに分割できます: |
address_id | |||
---|---|---|---|
john@example.com | 1 |
state | zip | 1 | ||
---|---|---|---|---|
NY | 12345 | この方法では、冗長データの問題を解決するだけでなく、新しいアドレスを簡単に追加することもできます。 |
user_id
city | state | #1 | ||
---|---|---|---|---|
ニューヨーク | NY | #上記の表では、「市」と「州」は相互に依存しています。次のように個別のテーブルに分割できます: |
name
#1 | John Doe | ||
---|---|---|---|
city_id | city_name |
##1 | ニューヨーク | NY |
---|---|---|
以上がデータベース正規化設計: PHP プログラミングのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。