2012-01-17 10 views
0

私はCodeIgniterのジャンクションテーブルを使用した最初の主要なデータベース設計に取り組んでいます。データの挿入方法についてはあまりよく分かりません。 ジャンクションテーブルでのデータ挿入

のは、私は2つのテーブルがあるとしましょう

、ジャンクションテーブルと& another_table some_tablesome_another。今では some_tableにレコードを追加したい場合は、ジャンクションテーブルの挿入クエリを別々に記述するのですか、これを処理するためのより優れた自動化された方法がありますか?

例えば

は、私がこれをしなければならない操作を行います。各レコードの

INSERT INTO some_table (col1, col2, col3) VALUES (val1, val2, val3)

INSERT INTO some_another (col01, col02) VALUES (val01, val02)

、または方法または私のためにも更新ジャンクションテーブルを扱うツールはありますか?

私が提供すべき他の情報がある場合は、私に知らせてください。ありがとう!

+0

別々のINSERTを記述する必要があります。しかし、私はあなたがデータベースのトリガーを読むのが好きかもしれないと思っています - http://dev.mysql.com/doc/refman/5.0/ja/triggers.html。トリガーは、トリガーが関連するテーブルで実行されるときに、INSERT、UPDATE、またはDELETEクエリーに対して自動的に起動されるコードです – Abhay

答えて

0

"接合テーブル"の目的によって異なります。他の2つのテーブル間のすべてのレコードを結合したいだけの場合は、結合を使用します。 「多対多の」相関関係が必要な場合は、どの項目を関連付けるべきかを知る自動化された方法はありません。

ただし、結合をシミュレートし、すべてのリレーションシップを多対多テーブルに単純にプリロードすると(後で無効にするか既定のリレーションシップを使用する場合に便利です)、トリガーを使用できますそれのために。

MySQLは1つのクエリで複数のテーブルに挿入することができないため、テーブルごとに別々のクエリを使用する必要があります。

関連する問題