我使用Rails作为web应用程序的框架。我正在使用Devise为我的应用程序设置身份验证。Devise自动创建一个用户表,其中包括电子邮件、密码等列。
假设我的应用程序中有一个表单,用户在其中提交点数的数值。将这些信息存储在数据库中的最佳位置是什么?我是否应该使用Devise创建的已经存在的用户表;点";专栏?我只是不确定调整桌子是否是最佳做法。
顺便说一句,我坚持Rails的MVC实践。
谢谢。
这些点是什么?稍微清楚一点可能会有所帮助。
考虑另一个经常需要的用例可能很有用。。。假设您的用户为您的应用程序有一系列设置,如locale
、timezone
、nickname
、address
等。
现在,您可以很容易地将大量列添加到users
表中,并使其正常工作,可以说该解决方案没有任何问题。
然而,从代码和数据组织的角度来看,把事情分开一点可能会更好。例如,除了User
之外,其他任何东西都有Address
吗?可能
我喜欢保持我的User
模型尽可能简单。把设计留给用户DB表来做它的事情,并组织用户的";事物;进入自己明智的地方:
- 创建一个
UserProfile
来存储locale
、timezone
和nickname
- 创建一个
Address
对象并设置多态关系以允许User
为addressable
。。。然后,您可以对Location
或任何其他需要Address
的东西执行相同的操作
以这种方式拆分代码/数据可以使组织、测试和维护更容易。