ホームページ >データベース >mysql チュートリアル >関連データのリストをリレーショナル データベースに保存するにはどうすればよいですか?
リストなどの階層データをデータベース列に保存するのは難しい場合があります。フルーツのリストを含むオブジェクト FOO を保存し、フルーツが別のテーブルに保存されるシナリオを考えてみましょう。
正規化されたリレーショナル データベースでは、リストを直接保存することはお勧めできません。コラムで。これにより、データの整合性の問題が発生し、データの効率的な維持とクエリの実行が困難になります。代わりに、FOO オブジェクトをフルーツに関連付ける ジャンクション テーブル を作成する必要があります。
データベース スキーマの設計
次のテーブルを作成します。
スキーマの例:
CREATE TABLE FOO ( id int primary key not null, int1 int, int2 int, int3 int ); CREATE TABLE Fruits ( id int primary key not null, name varchar(30) ); CREATE TABLE FOOFruits ( FruitID int references Fruits (ID), FooID int references FOO(id), constraint pk_FooFruits primary key (FruitID, FooID) );
データの入力
FOO オブジェクトのリストにフルーツを追加するには、FOOFruits に行を挿入します。表:
INSERT FOOFruits(FooID, FruitID) SELECT 5, ID FROM Fruits WHERE name = 'Apple';
正規化設計の利点
以上が関連データのリストをリレーショナル データベースに保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。