Я работаю над веб-приложением Java. Для аутентификации я требую, чтобы пользователь вводил свой адрес электронной почты и пароль. Теперь я использую JPA 2, что, возможно, не так важно.
Если электронное письмо было ключом таблицы Users, это упростило бы мою жизнь. Я мог бы сделать простой:Дизайн базы данных: электронная почта как идентификатор таблицы
User selected = em.find(User.class, userEmail);
См ?, Кроме того, каждый адрес электронной почты уникален, он не имеет места и т.д. Теперь, никто не делает это, я предполагаю, что есть причина. У меня тоже есть сомнения, я имею в виду, это варчар и т. Д. Но вы думаете, что это хорошая идея? Если нет, то почему ?. Это должно быть веской причиной, так что компромисс не стоит. Цифровые клавиши всегда лучше всего, но здесь я снова и снова сталкиваюсь с электронной почтой пользователя и постоянно просматриваю их по электронной почте, никогда не используя идентификатор, за исключением столбцов соединения и т. Д.
Я думал, что, возможно, я не думаю, что далеко вперед, и у меня могут быть тысячи пользователей и миллионы соединений, а ключ varchar и числовой ключ приведут к большой трате пространства, но есть ли другая причина ? – arg20
мммм. Я просто ответил себе. Первичный ключ никогда не должен меняться, пользователь может изменить свой адрес электронной почты. Наверное, это самая большая причина. Должен ли я удалить свой вопрос или оставить его кому-то другому, если у вас есть это сомнение? – arg20
Оставьте его здесь - ответы, которые будут приведены ниже, будут полезны для других. – AbdullahC