Вставка записи в несколько таблиц в базе данных SQL - PullRequest
1 голос
/ 18 мая 2011

Я создаю игру в ActionScript, которая требует использования внешней базы данных для хранения пользовательских данных и результатов.

Эта база данных будет содержать несколько таблиц, в настоящее время их две.

Моя первая таблица содержит заголовки - ID, адрес электронной почты, имя пользователя и пароль.

Моя вторая таблица содержит заголовки - ID, lvl1Score, lvl2Score, lvl3Score.

В моей игре, когда новый пользовательсоздается, он создает запись в первой таблице с автоматическим приращением идентификатора.

Мой вопрос: есть ли вообще возможность автоматически создавать запись во второй таблице со значениями по умолчанию и тем же идентификатором при добавлении?к моему первому столу?Я читал об объединениях, но все, что я прочитал, говорит о поиске данных по нескольким таблицам.

Кроме того, правильна ли структура моей таблицы в том смысле, что значение идентификатора можно использовать с помощью клавиш JOINчтобы найти запись из обеих таблиц.

Ответы [ 3 ]

1 голос
/ 18 мая 2011

Я бы предложил вам пойти на триггеры.

создать или заменить триггер_имя после
вставить на стол 1
за каждый ряд
начать
вставить в table2 значения (new.id, «значение для lvl2score», «значение для lvl3score»);
конец

Примерно так.

1 голос
/ 18 мая 2011

Если таблицы действительно имеют отношение «один к одному», я бы порекомендовал вам просто создать одну таблицу со всеми полями.

Или вы имели в виду, что это должно хранить несколько баллов для каждого отдельного пользователя? В этом случае не следует вставлять запись по умолчанию для пользователя. Вместо этого поле Score.ID должно ссылаться на user.ID и разрешать дубликаты.

0 голосов
/ 18 мая 2011

Я предлагаю вам использовать триггеры и для большей гибкости создайте отношения «многие-многие» между «пользователем» и «уровнем», так что в итоге вы получите 3 таблицы:

  • Пользователь
  • уровень
  • user_level (будет содержать внешние ключи: user_id, level_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...