【发布时间】: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