【问题标题】:Creating tables with almost the same data attributes创建具有几乎相同数据属性的表
【发布时间】:2016-07-26 05:12:59
【问题描述】:

所以我正在编写一个 Rails 应用程序,我需要在其中创建两个实体,一个用于 suppliers,另一个用于 customers。但是碰巧它们可能具有几乎相同的数据属性,例如 nameidentityphoneemail地址。 我的问题是,我应该创建两个不同的表来处理它(但这对我来说似乎有点多余)还是在这种情况下最好的方法是什么?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby database


    【解决方案1】:

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

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

    如果选择同一张表的路径,可以在Rails中使用STI(Single Table Inheritance),根据具体场景用合适的方法分离模型。

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

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

    【讨论】:

    • 嘿@neydroid,首先感谢您的回答。实际上,我考虑了两种可能性(分离表和 sti),但我担心它们各自的缺点。但我想我会坚持分开的。 :)
    【解决方案2】:

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

    【讨论】:

    • 欢迎 :) 能不能请你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多