Разделите две таблицы базы данных с помощью INNER JOIN или объедините их в одну таблицу - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть эти две таблицы, поэтому мне интересно, будет ли лучше или чище, если я объединю их в одну, или сделаю взаимосвязь и использую JOIN.

Это таблицы:

CREATE TABLE `users` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `fname` varchar(20),
  `lname` varchar(20),
  `username` varchar(100),
  `email` varchar(100),
  `password` varchar(100),
  `date` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `users_info` (
  `id` int(255),
  `work` varchar(50),
  `education` varchar(50),
  `phone_number` varchar(20),
  `state` varchar(20),
  `home_town` varchar(20),
  `relationship_status` varchar(20),
  `gender` varchar(20),
  `hobbies` varchar(50),
  `website` varchar(20),
  `company` varchar(20),
  `position` varchar(30),
  `bio` varchar(255),
  CONSTRAINT `users_info_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Я работаю над проектом, в котором есть часть, в которую пользователь может добавить только базовую c информацию о них после регистрации. Вся эта информация поступает в таблицу users.

Но после регистрации им нужно добавить дополнительную информацию, которая будет go в таблицу users_info.

Что я пытаюсь чтобы достичь - это добавить данные в таблицу users_info с отношением с таблицей users. У меня есть отношение между users.id и users_info.id, но я не уверен, как создать запрос с PHP.

Это то, что я пробовал до сих пор:

$session_username = $_SESSION['username'];
$stmt = $mysqli->prepare("INSERT INTO users_info (state) SELECT users_info.state FROM users_info INNER JOIN users ON users.id=users_info.id WHERE users.username = ?");
$stmt->bind_param("s", $session_username);
$stmt->execute();
$stmt->close();

Я не получаю никакой ошибки, но в моей базе данных ничего не произошло. Я не получаю никаких значений.

Итак, в конце мой вопрос: лучше ли я сделать две отдельные таблицы, как сейчас, или объединить все в одну таблицу?

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