@Tenebrius

Как правильно добавить данные в связанные таблицы?

Есть 2 таблицы - tbl_1 и tbl_2.
Поле tbl_2.parent_id указывает (равняется) на поле tbl_1.id.
3f3eae0bdf294e94bc776b7f7ae778a3.png
Т.е. данные таблицы связанны.

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

Пока что алгоритм таков:
  • Вставить данные в первую таблицу
  • Получить id первой таблицы (SELECT id FROM tbl_1 WHERE string='$string')
  • Зная родительский id вставить данные во вторую таблицу.


Тут получается для вставки 2-х строк выполняется 3 запроса. На самом деле таблиц у меня пять, и каждая, кроме первой, должна знать id предка. И количество запросов на мой взгляд велико. Есть ли способ оптимизировать этот процесс?
  • Вопрос задан
  • 11377 просмотров
Решения вопроса 1
https://dev.mysql.com/doc/refman/5.0/en/getting-un...

А если у вас не автоинкремент, то значит вы сами генерите ID и уже знаете его на момент вставки (например, если GUID).

Обращаю ваше внимание, что эта переменная запоминается на уровне подключения, то что это не запрос - никакого поиска не будет, просто запрос значения из памяти сервера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
urma
@urma
Java, android, Web
Ваш алгоритм:
  • Вставить данные в первую таблицу
  • Получить id первой таблицы (SELECT id FROM tbl_1 WHERE string='$string')
  • Зная родительский id вставить данные во вторую таблицу.

считаю правильным. Если это WEB программирование то данные из первой таблицы можно поставить в <select> вместе с ID и добавлять.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы