2016-07-26 40 views
1

因此,我正在编写一个应用程序,我需要创建两个实体,一个用于供应商和其他用于用户。但它发生,他们可能有几乎相同的数据属性,让我们说,例如身份电话电子邮件地址。 我的问题是,我应该创建两个不同的表来处理(但对我来说似乎有点多余),或者在这种情况下最好的方法是什么?创建具有几乎相同数据属性的表

在此先感谢。

回答

2

我会选择不同的机型,虽然在这一刻都共享相同的属性,你应该在模型和数据级(不同的表)一个干净的方式分离问题,因为很可能你会发现新的需求每个特定模型的属性。

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

如果选择同一个表的路径,你可以使用Rails的STI(单表继承)和型号,对应于每一个具体的场景适当的方法分开。

最后,我相信你应该选择一个更简单,维护在长期的办法。

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

+0

嘿@neydroid,首先感谢您的回答。其实,我想到了两种可能性(分开的桌子和sti),但我关心每个人的缺点。但我想我会坚持分开的。 :) –

1

的文档,您应该用两个不同的模式和表格的方式去让你有一个单独的业务逻辑在各自的关切/模式,将使得代码更干净,以后维护你在未来。

+0

嘿@Abid,谢谢你的回答。 –

+0

欢迎:)你可以请它。 –

相关问题