首页 > 解决方案 > 设计数据库rails多态的最佳方法

问题描述

两种型号:

患者与症状

class Patient < ActiveRecord::Base  
end

class Symptom < ActiveRecord::Base  
end

我将所有应用程序默认症状保存在症状表中。

Default symptoms: fever, headache

另外,我想将个别患者的症状保存在同一张表中,

Patient symptom: cough

我不能使用多态,因为默认症状没有模型。(取自 yml 文件)

标签: ruby-on-railspostgresql

解决方案


一个病人有很多症状,一个症状属于一个病人。

class Patient < ActiveRecord::Base
  has_many :symptoms
end

class Symptom < ActiveRecord::Base  
  belongs_to :patient
end

因此,这需要症状表中的整数类型的 patient_id 才能工作

您显然对一组默认症状有自己的要求,但我会质疑,因为拥有一组默认症状并没有太大的业务逻辑意义,但这就是您所拥有的,因此您需要一种方法来加载默认症状从您的患者类中的 yml 文件中。

这回答了您的具体问题,但我不确定您是否提出了正确的问题,您需要理清您的业务逻辑。我猜您需要一个具有一组症状的诊断,这些症状将充当连接表,作为患者和症状之间的多对多关系。


推荐阅读