【问题标题】:Rails - Single Table Inheritance or not for Applicant/Employee relationshipRails - 申请人/员工关系的单表继承与否
【发布时间】:2011-05-31 07:06:42
【问题描述】:

我正在开发一个招聘应用程序,用于存储前来面试的人员的记录。所以我有两个模型——申请人和员工,这在 OO 意义上看起来像是一个。即 Employee 之前是申请人。因此,我打算创建一个单表继承,例如:

申请人

员工

申请人的所有字段都在Employee中。 Employee 有几个其他字段不在申请人中。

我对这个计划是否正确。我还有另一个类似的情况要处理 - 潜在客户和客户。

更新:随着我越来越多地使用 STI,我开始不喜欢它了。

【问题讨论】:

    标签: ruby-on-rails sti


    【解决方案1】:

    根据我的个人意见,从 OO 的角度来看,您是正确的。

    Applicant < Person
    
    Employee < Person
    

    但是当涉及到数据库/表时,我会选择一个名为“persons”(Person)的表,该表包含“Applicant”和“Employee”的所有列,并且有一列带有一个标志,指示是否 Person是申请人或雇员

    注意:: 但这仅在您只有“其他几个字段”不多时才适用

    HTH

    同人

    【讨论】:

    • 员工有额外的字段,如:salary、job_title、additional_benefits 以及一些其他字段,如文档等。在 STI 的情况下,只有一个表包含所有字段和一个类型列,所以您的解决方案如何与 STI 方式不同。
    • 由于我已经多次使用 STI,因此我倾向于使用带有布尔标志的非 STI 方法。
    • 嗨@RubyDev 很高兴它有帮助.. :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多