2014-01-03 6 views
1

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

Информация о первых таблицах вводится на определенную веб-страницу, и данные вставляются в таблицу без проблем при нажатии кнопки отправки. У меня есть скрытый автоинкрементный столбец для уникального идентификатора этого пользователя. Затем я сделал то же самое для второй таблицы на второй форме на следующей веб-странице.

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

Я уверен, что есть очень простой способ связать эти две таблицы в зависимости от пользователя в то время, но как им нового для этого языка и базы данных, у которых возникли проблемы с этим!

(Если это помогает, им с помощью Dreamweaver с PHP кодирования на сайте для связи с сервером SQL, с локальным сервером, созданным с помощью XAMPP.)

+0

Не используйте автоинкремент, просто используйте идентификатор пользователя. – deed02392

ответ

2

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

Лучший способ связывания пользователей между таблицами - использовать идентификатор для этого пользователя (назовем его идентификатором пользователя). Создайте идентификатор для пользователя, когда он завершит первую таблицу. Затем, когда они перейдут на более подробные сведения об этом свойстве, отозвать идентификатор, сгенерированный для пользователя, и отправить его.

+0

, так как передать исходный уникальный идентификатор из первой таблицы во вторую таблицу? Предполагаю ли я, что я перетаскиваю идентификатор из первой таблицы в код на второй веб-странице, а затем помещаю ее во вторую таблицу? но как я могу убедиться, что это один и тот же идентификатор пользователей (я не могу просто получить доступ к последней строке данных, если есть два пользователя одновременно). Еще один способ, о котором думал, но уволен, - передать переменную с первой веб-страницы на вторую, но уникальную id не создан до тех пор, пока форма не будет отправлена, правильно? – Giovanni

+0

Вам необходимо отследить сеанс, который создал пользователь. В PHP это делается с помощью 'session_start()', который создает файл cookie на компьютере пользователя. Он создается для нового пользователя при открытии первой страницы. Вы можете сохранить сгенерированный идентификатор пользователя в переменной $ _SESSION после его создания из первой таблицы, затем получить к нему доступ для приема сообщения из вторых данных таблицы (не отправлять его в браузер и ожидать его обратно - пользователь может изменить это будет представлять проблему безопасности). – deed02392

+0

ok Спасибо за вашу помощь - плохо просматривайте файлы cookie (кажется, очень крутая кривая обучения для веб-дизайна - в прошлом была разработана приложение, и поэтому они отлично овладели iOS, но веб-дизайн - это нечто большее, чем просто одно язык, его зверинец многих разных языков, работающих вместе !!) – Giovanni

0

структура использования таблицы, как это:

 
user (unique_autoincrement_id, other_fields) 
user_properties (unique_autoincrement_id, user_id_linked_to_user_table, other_fields) 

НЕ использовать два разных поля Autoincrement для идентификации одного пользователя - вы, безусловно, будет иметь большие и неприятные проблемы с ним.

0

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

Кроме того, вы можете искать в google для «внешнего ключа» и «внутреннего соединения».

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