创建具有几乎相同数据属性的表

时间:2016-07-26 05:13:00

标签: ruby-on-rails ruby database

所以我正在编写一个rails应用程序,我需要创建两个实体,一个用于供应商,另一个用于客户。但碰巧他们可能拥有几乎相同的数据属性,例如名称身份手机电子邮件地址。 我的问题是,我应该创建两个不同的表来处理它(但对我来说似乎有点多余)或者在这种情况下最好的方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

我会选择不同的模型,虽然此时两者共享相同的属性,但您应该在模型和数据级别(不同的表)中以干净的方式分离关注点,因为您很可能会发现需要新的属性对于每个特定的模型。

还可以选择在不同的模型中分离ContactInfo(电话,电子邮件,地址)的部分,并将其与每个模型相关联。

如果选择同一个表的路径,则可以在Rails中使用STI(单表继承),并使用与每个特定方案对应的适当方法分离模型。

最后我相信你应该选择更长期更简单和可维护的方法。

查看http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html

上的文档

答案 1 :(得分:1)

您应该采用两个单独的模型和表格的方法,以便您在各自的关注/模型中具有单独的业务逻辑,这将使您的代码在以后更加清晰和可维护。