【问题标题】:Inheritance with different type of values in a database继承数据库中不同类型的值
【发布时间】:2013-12-18 07:48:36
【问题描述】:

我有一个 API 接口,它接收患者的 LabTestResult 并将其保存在数据库中。实验室测试结果的结果列可以是字符串(来自医生的长文本)、整数值或 +/-(我将使用布尔值)。

目前我有一个包含三列(text_result、integer_result、sign_result)的数据库,对于每个 labtestresult,其中之一是字段。

首先,这是正确的做法吗?还是我需要三个不同的表,只有结果值是不同的类型?

我也在考虑使用继承,有一个主模型 LabTestResult 并有三个子模型 TextLabTestResult、IntegerLabTestResult、SignLabtestResult。

所以现在我的问题是,当请求到达控制器 (API) 时,我应该有一个逻辑,如果结果是一个字符串,则执行 TextLabTestResult.new 或者我应该在父模型 LabTestResult 中有逻辑并有一个案例语句,如果我们有一个字符串,则执行 TextLabTestResult 等。

我觉得有一种设计模式可以描述这一点,我可能在这里完全遗漏了一些东西,并且可能会有更好的设计。

【问题讨论】:

    标签: ruby-on-rails design-patterns inheritance object-oriented-database


    【解决方案1】:

    在设计任何东西时,请始终使用最简单的选项。如果结果可以是一串文本、一个数字或一个 + 或 -,则将其表示为文本。

    听起来您根本不需要结果表。只需将结果作为 lab_tests 表的一部分。

    rails g model LabTest result:text
    

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 2015-08-25
      • 2011-06-08
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2010-11-08
      • 2023-03-27
      相关资源
      最近更新 更多