Yer*_*gin 8 database-design ruby-on-rails
我正在通过构建一个简单的站点来学习Rails,用户可以在其中创建文章并对这些文章发表评论.我有一个列出用户最新文章和评论的视图.现在,我想添加用户"个人资料",用户可以在其中输入位置,年龄和简短传记等信息.我想知道这个配置文件是否应该是一个单独的模型/资源(我的用户模型中已经有很多字段,因为我使用的是Authlogic及其大部分可选字段).
使用单独资源的优缺点是什么?
这基本上取决于用户和个人资料的大小。如果用户是 5 个字段,而配置文件是 3 个,则没有意义。但如果用户有 12 个字段,个人资料有 20 个,那么您绝对应该这样做。
我认为最好放入一个单独的模型。考虑模型如何与数据库表相对应,然后如何针对应用程序支持的各种用例读取这些模型。
如果用户只是偶尔查看他的实际个人资料,但用户模型被频繁访问,那么您绝对应该将其设为具有一对一关系的单独对象。如果每次需要用户数据时都需要配置文件数据,您可能希望将它们放在同一个表中。
也许每次显示用户时都需要位置(比如他们留下的评论),但传记应该是不同的模型?您必须找出正确的细分,但一般规则是构建事物,这样您就不必立即提取未使用的数据。
为了清晰和简单,我建议在 User 模型中保留配置文件列。如果您发现您只使用某些字段,请仅使用 :select 选择您需要的列。
如果您后来发现由于某种原因需要一个单独的表(例如,一个用户可以有多个配置文件),那么将它们分开应该不会有太多工作。
我犯了有两张桌子的错误,除了增加了额外的复杂性之外,它并没有给我带来任何好处。
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |