Да, вы можете сделать это (и вы должны это сделать с точки зрения проектирования базы данных).
Однако рассмотрим, что это значит, если user_id
является первичным ключом в таблице 2. Вы фактически говорите, что каждая строка в таблице 2 соответствует пользователю, но у вас уже есть таблица, в которой каждая строка соответствует пользователю. : таблица 1. Это поднимает вопрос «почему тогда вы не помещаете все данные таблицы 2 в пустые столбцы таблицы 1?». В конце концов, наличие двух таблиц означает, что вам придется выполнить два запроса, чтобы получить эти данные вместо одного.
Теперь есть несколько сценариев, где эта практика может быть хорошей идеей:
- если у вас много пользователей, но только несколько строк в таблице 2, возможно, запрос к таблице 2 будет выполняться редко; в то же время вы получаете место для хранения и скорость модификации в таблице 1
- в будущем возможно изменение первичного ключа таблицы 2 при сохранении внешнего ключа; если вы поместите все данные в таблицу 1, эта модификация, скорее всего, нарушит модель вашей базы данных
Это может быть хорошей идеей, но это зависит от особенностей вашего приложения.