ホームページ >データベース >mysql チュートリアル >値のリストをリレーショナル データベースに効果的に保存するにはどうすればよいですか?
データベース列へのリストの保存: リレーショナル データベース アプローチ
データベース列内に値のリストを保存するタスクに直面した場合、正規化されたリレーショナル データベースの制約を考慮することが重要です。
次のような単純なリスト質問で説明されているように、リレーショナル システムに異常とデータの冗長性が生じます。これに対処するには、ジャンクション テーブルを確立することをお勧めします。
ジャンクション テーブルのアプローチ
ジャンクション テーブルは、列で構成される新しいテーブルを作成することで 2 つの既存のテーブルを接続します。各テーブルの一意の識別子 (ID) と、各行を一意に識別する主キー タプルです。このアプローチにより、リスト テーブルから参照されるフィールドを含めることができ、2 つのテーブル間に多対多の関係を確立できます。
たとえば、FOO オブジェクトの例では次のようになります。
クエリの例
ID を持つ FOO オブジェクトの果物リストに Apple を追加するには5:
INSERT INTO FOOFruits (FooID, FruitID) SELECT 5, ID FROM Fruits WHERE name = 'Apple'
このクエリは、名前が「Apple」である Fruits テーブルから FruitID と FooID を選択し、それらを FOOFruits テーブルに挿入して、FOO オブジェクトと Apple フルーツの間の関係を確立します。
このアプローチに従うことで、データの整合性を維持して異常を回避しながら、リスト データをリレーショナル データベースに効果的に保存し、正確性と信頼性を確保できます。長期にわたるデータの一貫性。
以上が値のリストをリレーショナル データベースに効果的に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。