“email:Pk [String]”vs“id:Pk [Long]”

时间:2013-12-03 14:29:13

标签: scala playframework

在某些示例中,我看到email:Pk[String]类下的User,但在其他示例中,我看到id:Pk[Long](均未分配)。用户可以根据需要更改他们的电子邮件,但ID不会更改,因此背后有(安全)原因吗?

1 个答案:

答案 0 :(得分:1)

我不确定您的问题是指NotAssigned还是email:Pk[String],而是答案:不是真的。此SO帖子讨论了PkWhat is purpose of anorm's Pk?

的用法

默认情况下,case class User(id:Pk[Long] = NotAssigned, name:String)的ID为NotAssigned的目的允许表示尚未在数据库中保留的模型。以后可以在保存后填写id。

我不确定为什么你会想要email: Pk[String] = NotAssigned,因为用户的电子邮件是持久化模型时的重要信息。虽然如果你真的不关心(或有)id,使用电子邮件地址作为主键肯定是好的。无论如何,电子邮件地址应至少设置为数据库中的唯一键,因为两个用户永远不可能拥有相同的电子邮件。