我正在使用Rails制作应用程序,除其他外,允许某些类型的专业人员创建在线个人资料。因此,用户和个人资料模型之间存在“关联”。我创建了Profile模型,这样我基本上可以将用户模型限制为名称和注册信息,并将配置文件信息保存在其他地方(即我认为它被称为“规范化”数据库)
但是,这些配置文件(例如LinkedIn上的情况通常如此)包含大量信息。例如,有一个工作体验部分有时看起来像这样,用户可以添加许多不同的工作经验。
然后类似的教育
还有许多其他不同类型的个人资料信息。另请注意,添加和编辑这些离散类别的能力以单独的形式进行。我可以在不接触教育的情况下增加我的工作经验。
我的问题是,我是否应该尝试将所有这些信息存储在我的个人资料模型中?或者,例如,您是否会创建一个WorkExperience模型并执行类似Profile:has_many work_experiences的操作?与EducationExperience类似的东西,还是有其他方法可以做到这一点?
我关注的一个问题是对数据库的查询。例如,就性能而言,如果在Profile控制器的show动作中,我对WorkExperience.all,Education.all进行查询而不是将所有信息存储在Profile模型中,那么会有很大的不同吗? 。另一个问题是配置文件的通用代码组织可能变得非常大。
答案 0 :(得分:1)
你将拥有最干净的代码(以及体面的表现),分出像体验(这将属于配置文件),以及确定它是“工作”体验,“教育”经验等的类型列。这是我会采取的方法,除非不同类型的经验有不同的专栏。