在某些示例中,我看到email:Pk[String]
类下的User
,但在其他示例中,我看到id:Pk[Long]
(均未分配)。用户可以根据需要更改他们的电子邮件,但ID不会更改,因此背后有(安全)原因吗?
答案 0 :(得分:1)
我不确定您的问题是指NotAssigned
还是email:Pk[String]
,而是答案:不是真的。此SO帖子讨论了Pk
:What is purpose of anorm's Pk?
默认情况下,case class User(id:Pk[Long] = NotAssigned, name:String)
的ID为NotAssigned
的目的允许表示尚未在数据库中保留的模型。以后可以在保存后填写id。
我不确定为什么你会想要email: Pk[String] = NotAssigned
,因为用户的电子邮件是持久化模型时的重要信息。虽然如果你真的不关心(或有)id,使用电子邮件地址作为主键肯定是好的。无论如何,电子邮件地址应至少设置为数据库中的唯一键,因为两个用户永远不可能拥有相同的电子邮件。