Обновление реляционной базы данных в PHP / MySQL - PullRequest
0 голосов
/ 02 апреля 2012

Я учу себя веб-программированию. Я пытаюсь создать учетную запись пользователя для веб-сайта. У меня есть две базы данных - первая (db_users - идентификатор пользователя (автоинкремент), имя пользователя, пароль) для хранения пользовательской информации, такой как имя пользователя, пароль и т. Д., И вторая (db_address - идентификатор пользователя (автоинкремент), address1, address2, city) сохранить адрес пользователя.

Теперь, когда я регистрирую пользователя, как я могу убедиться, что обе таблицы обновлены с правильным идентификатором пользователя? Или это не так, как работает реляционная база данных?

Ответы [ 4 ]

1 голос
/ 02 апреля 2012

Пользовательские данные не относятся к реляционной базе данных.
Нет смысла иметь 2 таблицы для пользователя (а также иметь 2 поля для адреса).

Составьте одну таблицу, затем добавьте таблицу комментариев и добавьте в нее поле идентификатора пользователя.
Таким образом, у вас будет реальный случай реляционной базы данных.

0 голосов
/ 02 апреля 2012

Идентификатор пользователя не должен быть автоматически увеличенным индексом во второй таблице. Разделение данных пользователя и адреса означает, что пользователь может быть подключен к более чем одному адресу, а несколько пользователей могут иметь один и тот же адрес (другими словами, совместное проживание). Или вы можете объединить таблицы, если вам это подходит.

db_users:

  • ИД пользователя (автоинкремент)
  • имя пользователя
  • пароль

db_address:

  • address_id (автоинкремент)
  • 1018 * идентификатор *
  • address1
  • address2
  • город
0 голосов
/ 02 апреля 2012

Прежде всего, я думаю, что у вас, вероятно, две таблицы, а не две базы данных.Во-вторых, ваша таблица адресов должна иметь столбец addressid, который вы должны автоматически увеличивать.Вы сами несете ответственность за установку правильного ИД пользователя в таблице адресов.Таким образом, вы можете иметь несколько адресов для каждой учетной записи.Например, 1 для доставки и 1 для выставления счетов.

Кстати, если вы планируете иметь только 1 адрес на пользователя, вы можете рассмотреть возможность объединения двух таблиц и добавления информации об адресе в таблицу счетов.Формально это пошло бы вразрез с правилами нормализации, но в этом случае это, вероятно, было бы более практичным.

0 голосов
/ 02 апреля 2012

Не входя в код, который вы хотите сделать:

  1. Вставить детали в пользовательскую таблицу
  2. Получить идентификатор, вставленный с помощью $id = mysql_insert_id()
  3. Вставить детали в таблицу адресов, используя $id

РЕДАКТИРОВАТЬ: Если используется более одного подключения MySQL, вам нужно сделать $id = mysql_insert_id($connection)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...