2013-12-03 4 views
1

В некоторых примерах я вижу email:Pk[String] под классом User, но в других случаях я вижу id:Pk[Long] (оба не назначены). Пользователь может изменить свой адрес электронной почты столько, сколько захочет, но идентификатор не изменится, так что есть причина (безопасность)?"email: Pk [String]" vs "id: Pk [Long]"

ответ

1

Я не уверен, что ваш вопрос относится к NotAssigned или email:Pk[String], но к ответу: на самом деле. Это SO сообщение обсуждает использование Pk: What is purpose of anorm's Pk?

Цель нечто вроде case class User(id:Pk[Long] = NotAssigned, name:String) с ид быть NotAssigned по умолчанию позволяет получить представление модели, которая не сохранялось в базе данных еще. После этого идентификатор может быть заполнен после сохранения.

Я не уверен, почему вы когда-либо захотите email: Pk[String] = NotAssigned, так как электронное письмо пользователя является важной частью информации при сохранении модели. Хотя, конечно, правильно использовать адрес электронной почты в качестве первичного ключа, если вам действительно не нужны (или есть) идентификаторы. Адреса электронной почты должны быть в как минимум быть установлены как уникальный ключ в базе данных, так или иначе, поскольку для двух пользователей не должно быть одинакового адреса электронной почты.

+0

Обратите внимание, что с версии 2.3.0 'Pk [A]' устарел, и вместо этого следует использовать параметр [A] '. –

Смежные вопросы