使用Devise时,将用户帐户属性放在数据库表中的哪个表



我使用Rails作为web应用程序的框架。我正在使用Devise为我的应用程序设置身份验证。Devise自动创建一个用户表,其中包括电子邮件、密码等列。

假设我的应用程序中有一个表单,用户在其中提交点数的数值。将这些信息存储在数据库中的最佳位置是什么?我是否应该使用Devise创建的已经存在的用户表;点";专栏?我只是不确定调整桌子是否是最佳做法。

顺便说一句,我坚持Rails的MVC实践。

谢谢。

这些点是什么?稍微清楚一点可能会有所帮助。

考虑另一个经常需要的用例可能很有用。。。假设您的用户为您的应用程序有一系列设置,如localetimezonenicknameaddress等。

现在,您可以很容易地将大量列添加到users表中,并使其正常工作,可以说该解决方案没有任何问题。

然而,从代码和数据组织的角度来看,把事情分开一点可能会更好。例如,除了User之外,其他任何东西都有Address吗?可能

我喜欢保持我的User模型尽可能简单。把设计留给用户DB表来做它的事情,并组织用户的";事物;进入自己明智的地方:

  • 创建一个UserProfile来存储localetimezonenickname
  • 创建一个Address对象并设置多态关系以允许Useraddressable。。。然后,您可以对Location或任何其他需要Address的东西执行相同的操作

以这种方式拆分代码/数据可以使组织、测试和维护更容易。

最新更新