【问题标题】:Best way to arrange object and models with different sets of important attributes排列具有不同重要属性集的对象和模型的最佳方式
【发布时间】:2011-10-07 21:23:02
【问题描述】:

假设我有一些医疗软件可以跟踪患者的账单和医疗程序。每个病人都有三组重要的属性。

  1. 共享属性 - 姓名、年龄、性别、患者编号等。
  2. 帐单属性 - 地址、帐号、余额等
  3. 医学属性 - 血压、手术、血型等

我有一个具有上述所有属性的 ActiveRecord 患者模型。然后我可以有一个 PatientBillingDetails 控制器和一个 PatientMedicalDetails 控制器来区分两者。我是否还应该再创建两个模型来对应每个控制器,或者只是让每个控制器从单个患者模型中提取。如果创建两个新模型,让它们仅使用适当属性的最佳/最简单方法是什么?

【问题讨论】:

  • This article 关于 ActiveRecord 中的多表继承与单表继承可能包含您的答案。如果您已经熟悉这些概念并且只是寻求意见,我更喜欢 MTI,因为我不喜欢在表中包含一堆 NULL 值。

标签: ruby-on-rails rails-activerecord


【解决方案1】:

为了直接回答您的问题,虽然 Rails 教程喜欢将信息孤岛化到一个控制器的一个模型中,但我在 Rails 中编写大型企业应用程序的 5 年以上经验告诉我,您构建的控制器与您需要的视图相关显示,而不是与模型的一对一关系。因此,为您的 Patient 模型的每个方面创建多个控制器似乎非常明智。

然而,在我看来,真正的问题是您的 Patient 模型因试图一次做太多事情而超载。我建议您将一些信息规范化到他们自己的模型中 - 特别是在您可能需要“有很多”关系的情况下,例如在不同日期记录的医疗属性。

为了提供更好的答案,我需要更多关于您的软件正在尝试做什么的信息,特别是您正在尝试编写的“医疗软件”类别,以及这是否是专业的辅助工具用途或通用 EHR 或医疗账单应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多