2012-01-17 3 views
0

Я работаю над своим первым крупным проектом базы данных с таблицами переходов в CodeIgniter, и я не слишком уверен, как обрабатывать ввод данных.Вставка данных со связанными таблицами

Скажем, у меня есть две таблицы, some_table & another_table, с таблицей соединения, some_another. Теперь, если я хочу добавить запись в some_table, могу ли я написать отдельные запросы на вставку для таблицы соединений, или есть лучший, более автоматический способ справиться с этим?

Например, я должен сделать это:

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

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

для каждой записи, или есть способ или инструмент, который обрабатывает также обновляемые таблицы клеммные для меня?

Если есть какая-либо другая информация, которую я должен предоставить, сообщите мне. Благодаря!

+0

Вам нужно будет написать отдельные ВСТАВКИ. Но я думаю, вам может понравиться читать триггеры базы данных, которые являются отличным способом сделать это - http://dev.mysql.com/doc/refman/5.0/en/triggers.html. Триггер - это код, который автоматически запускается для запроса INSERT, UPDATE или DELETE, когда он запускается в таблице, к которой относится триггер – Abhay

ответ

0

Зависит от цели «соединительной таблицы». Если вы просто хотите объединить все записи между двумя другими таблицами, используйте для этого объединение. Если вам нужна корреляция «многих-многих», нет действительно автоматизированного способа узнать, какие из них должны быть связаны.

Если вы хотите имитировать соединение и просто «предварительно загрузите» все отношения в таблицу «многие-ко-многим» (полезно, если вам нужны отношения по умолчанию, которые могут быть отключены или обработаны позже), вы можете использовать триггеры для этого.

Независимо от этого, вам нужно будет использовать отдельные запросы для каждой таблицы, так как MySQL не может вставлять в несколько таблиц с одним запросом.

Смежные вопросы