#php #mysql #database #database-design
#php #mysql #База данных #база данных-дизайн
Вопрос:
Моя проблема не в том, как писать код, а в стратегии базы данных и наилучшем способе записи в базу данных.
Мой HTML имеет 2 раздела, и каждый раздел представляет собой раздел. В первом разделе пользователь вводит свое имя, адрес электронной почты и пароль. Во втором разделе пользователь вводит свой адрес, страну и должность.
Лучше всего сохранять значения в базе данных по мере завершения каждого раздела? Или лучше отправлять все значения из обоих разделов одновременно? Я предпочитаю вставлять в БД каждый раздел независимо.
Другой вопрос, лучше всего иметь уникальную таблицу для всех данных, где поля из обоих разделов сохраняются в одной записи, или мне следует создать две отдельные таблицы? Если я создам две отдельные таблицы, как мне их соединить? (хорошо … внешний ключ, но у меня нет большого опыта работы с БД)
Спасибо
Ответ №1:
Я бы сохранил значения каждого слайда в $_SESSION
переменной. По завершении регистрации отправьте $_SESSION
значения в базу данных.
где-то поверх ваших скриптов
session_start();
слайд 1
Когда закончите, сделайте это:
$userinfo = array();
$userinfo['name'] = $name_from_formular;
$userinfo['mail'] = $mail_from_formular;
$_SESSION['userinfo'] = $userinfo;
слайд 2
if(isset($_SESSION['userinfo'])) {
$userinfo = $_SESSION['userinfo'];
}
$userinfo['country'] = $country_from_formular;
// ....
$_SESSION['userinfo'] = $userinfo;
отправить данные
(прочитайте из $_SESSION
и отправьте его в базу данных)
Комментарии:
1. хорошо, я понимаю логику, спасибо! когда вы вставляете содержимое в базу данных, вы делаете что-то вроде — вставляете в значения users (name, email) ($userinfo[‘name’], $userinfo[’email’] обычным способом, или вы используете $ _SESSION[‘userinfo’] ?
2. Я бы отступил
$userinfo
от$_SESSION
, но вы также можете вставить$_SESSION['userinfo']['name']
, если хотите.