#php #mysql
#php #mysql
Вопрос:
Я новичок в php. Я разрабатываю веб-приложение.
У меня есть две отдельные таблицы в базе данных как пользователи и bmi.
Я использую сеанс для входа пользователя.
В таблицах пользователей есть 6 столбцов, таких как id, firstname, lastname, имя пользователя, адрес электронной почты и пароль.
В таблице bmi есть 5 столбцов: id, username, bmi_value, категория и дата.
В моем веб-приложении пользователи могут вычислять свои значения ИМТ. когда пользователь вычисляет свой ИМТ, данные сохраняются в таблице bmi. если другой пользователь регистрируется и вычисляет bmi, его данные сохраняются в следующей строке таблицы bmi.
Если первый пользователь снова вычислит свой ИМТ, значение, сохраненное в следующей строке, и значение столбца id отобразятся как 3. как это происходит.
Что мне нужно, так это то, что я хочу отфильтровать все данные одного конкретного пользователя в таблице bmi и отобразить, когда он нажмет кнопку bmi_history на странице BMI системы.
Должен ли я связать таблицу bmi и users или есть какой-либо способ?
Заранее благодарю вас за ваши ответы.
Комментарии:
1. ДА. Это СОЕДИНЕНИЕ.
2. Прошу прощения. Но идентификатор пользователя отличается в двух таблицах. в качестве примера, если пользователь A является номером 3 в таблице пользователей, но в таблице bmi он получил разные и несколько идентификаторов, когда он подсчитывает bmi несколько раз. это нормально?
3. Нет. Идентификатор пользователя должен быть согласован между таблицами. Вы должны хранить идентификатор пользователя, а не имя пользователя, в bmi.
Ответ №1:
Проблема, которую вы пытаетесь решить, является общей. В мире баз данных это отношение называется первичным ключом и внешним ключом. Каждой строке в таблице пользователя присваивается уникальный идентификатор. Каждая строка в таблице bmi имеет столбец id и столбец user_id. bmi.id столбец будет уникальным для каждой строки. Но bmi.user_id будет ссылаться на существующий user.id ценность.
В мире MVC модель пользователя и модель bmi имеют отношение «один ко многим». У каждого пользователя может быть много точек данных bmi.