所以我正在编写一个rails应用程序,我需要创建两个实体,一个用于供应商,另一个用于客户。但碰巧他们可能拥有几乎相同的数据属性,例如名称,身份,手机,电子邮件和地址。 我的问题是,我应该创建两个不同的表来处理它(但对我来说似乎有点多余)或者在这种情况下最好的方法是什么?
提前致谢。
答案 0 :(得分:2)
我会选择不同的模型,虽然此时两者共享相同的属性,但您应该在模型和数据级别(不同的表)中以干净的方式分离关注点,因为您很可能会发现需要新的属性对于每个特定的模型。
还可以选择在不同的模型中分离ContactInfo
(电话,电子邮件,地址)的部分,并将其与每个模型相关联。
如果选择同一个表的路径,则可以在Rails中使用STI(单表继承),并使用与每个特定方案对应的适当方法分离模型。
最后我相信你应该选择更长期更简单和可维护的方法。
查看http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html
上的文档答案 1 :(得分:1)
您应该采用两个单独的模型和表格的方法,以便您在各自的关注/模型中具有单独的业务逻辑,这将使您的代码在以后更加清晰和可维护。