Привет, я нахожусь в процессе создания веб-сайта, который включает систему регистрации пользователей для моего последнего года крупного проекта средней школы. На сайте хранятся логи вождения для обучающихся водителей. Я немного сбит с толку относительно того, как я должен описать базу данных. У меня есть таблица пользователей, в которой хранятся персональные данные каждого пользователя сайта. Тем не менее, я хотел бы, чтобы пользователь мог вставлять информацию в другую таблицу, которая будет его «журналом регистрации», и эта информация будет отображаться на странице моей учетной записи. Нужно ли создавать таблицу в базе данных для каждого пользователя или есть способ соединения таблиц, чтобы мне не пришлось.
Вам не нужно создавать таблицу для каждого пользователя. Вместо этого добавьте столбец в таблицу «бортовой журнал», который будет содержать и ссылаться на «идентификатор» пользователя, которого он отслеживает. Вероятно, это будет основной ключ вашей таблицы «пользователи». Затем, чтобы получить журналы для конкретного пользователя, вы должны запросить таблицу журнала для строк только с определенным идентификатором пользователя.
Кроме того, в более сложной настройке вы можете добавить ограничения, чтобы связать два столбца. Увидеть http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
У вас не будет таблицы для каждого пользователя …
Вам поможет только один стол …
Другая таблица, в которой вы хотите хранить пользовательские журналы, должна иметь только ссылку на пользователя, которого вы бы создали в таблице пользователей.
Первичный и внешний ключ — понятия реляционных таблиц
Например:
Пусть ваш пользователь имеет
1.userid
2. первое имя
3.lastname …. и другие колонны
Тогда ваш пользовательский журнал должен иметь
1.logid
2.userid
3. другие столбцы …
Надеюсь, ты понял …
Вам нужно только 1 таблица для пользователей, каждый пользователь будет строкой внутри этой таблицы.
Как видно из приведенной ниже таблицы, вам нужен способ отслеживать, какая запись журнала принадлежит какому пользователю. Это делается путем сохранения идентификатора пользователя (или любого уникальный идентификатор, обычно первичный ключ) точно знать, какой пользователь создал запись.
-------------- -----------------
| User Table | | Logbook Table |
------------------------- -----------------------------------
| id | name | ...etc... | | id | user_id | date | ...etc... |
------------------------- -----------------------------------
| |
|_____________________________________|
Я не знаю, как работает ваша система, но я предполагаю, что вы знаете, когда пользователь вошел в систему правильно? Вероятно, хранить их id
в сеансе да? Хорошо, когда вы вставляете запись в журнал, все, что вам нужно сделать, это дополнительно проанализировать их идентификатор пользователя:
INSERT INTO logbook (id, user_id, .....) VALUES (NULL, $THE_USER_ID_FROM_SESSION, .....)
Выше приведен псевдокод, вам нужно очистить ввод и фактически присвоить идентификатор пользователя переменной.
Теперь для получения информации о пользователе все, что вам нужно сделать, это добавить простую WHERE
пункт:
SELECT id,column_1,column_2,... FROM logbook WHERE `user_id` = $THE_USER_ID_FROM_SESSION
Выше приведен псевдокод, вам нужно очистить ввод и фактически присвоить идентификатор пользователя переменной.
У меня есть несколько вопросов, сколько вы будете читать / писать за столом? Как устроены ваши столы?