ruby-on-rails - 设计数据库rails多态的最佳方法
问题描述
两种型号:
患者与症状
class Patient < ActiveRecord::Base
end
和
class Symptom < ActiveRecord::Base
end
我将所有应用程序默认症状保存在症状表中。
Default symptoms: fever, headache
另外,我想将个别患者的症状保存在同一张表中,
Patient symptom: cough
我不能使用多态,因为默认症状没有模型。(取自 yml 文件)
解决方案
一个病人有很多症状,一个症状属于一个病人。
class Patient < ActiveRecord::Base
has_many :symptoms
end
class Symptom < ActiveRecord::Base
belongs_to :patient
end
因此,这需要症状表中的整数类型的 patient_id 才能工作
您显然对一组默认症状有自己的要求,但我会质疑,因为拥有一组默认症状并没有太大的业务逻辑意义,但这就是您所拥有的,因此您需要一种方法来加载默认症状从您的患者类中的 yml 文件中。
这回答了您的具体问题,但我不确定您是否提出了正确的问题,您需要理清您的业务逻辑。我猜您需要一个具有一组症状的诊断,这些症状将充当连接表,作为患者和症状之间的多对多关系。