din*_*ing 2 ruby ruby-on-rails
我在确定要构建的新应用程序的模型名称时遇到问题。这些都是重要的决定,因此我想确保做对了。这将是一个保存医疗记录的数据库,因此可以有关于接受医疗服务的人员,其家庭成员,医生,护士/行政人员,事故见证人等的记录。
我没有为每种类型的人都有特定的表格,而是在考虑制作“人”和“用户”模型。“用户”模型将容纳为医疗机构工作的所有个人,而“人”表将容纳其他所有人,例如患者和事故见证人。
我仍然有一个问题,因为如果用户记录了事故,则一个“用户”可能是证人,另一个可能是受害者。从根本上来说,由于我将“人”(患者等)和“用户”(雇员等)划分为系统中两个恒定的位置,因此我的应用似乎显得不灵活。
那么,为什么我不能只为每个人制作一张称为“人”的桌子?然后,一个人可能是用户,雇员,医生,患者,受害者-或它们的任意组合。
我们是否被教导要始终为为我们工作的人员命名并登录系统“用户”?这有关系吗?
每个人都有一个叫做“ Person”的表是否有负面影响?这似乎使事情变得容易一些。任何人都可以是用户(通过启用有效的登录名/状态进行登录)或非用户。我对此没有负面看法。
您和我一直都是人,但是我们在某些情况下会扮演特定的角色-那么在所有设置中,所有的人都由一个称为“人”的模型来代表,并由需要这些角色的特定类链接到一起。例如:
class Person < ActiveRecord::Base
...
end
class HospitalEmployee
belongs_to :user, class_name: 'Person' # foreign key is user_id
end
class MedicalRecord < ActiveRecord::Base
belongs_to :patient, class_name: 'Person' # foreign key is patient_id
...
end
class Accident < ActiveRecord::Base
belongs_to :victim, class_name: 'Person' # foreign key is victim_id
belongs_to :witness, class_name: 'Person' # foreign key is witness id
end
Run Code Online (Sandbox Code Playgroud)
这样,构成一个人的数据始终是恒定的,但是构成其所扮演的角色的数据则存储在其他模型中。
您会经常在野外找到这种设置-例如,在我工作过的一所大学中,所有与个人打交道的记录都指向主“ PEOPLE”文件-后来成为员工的学生在在两种情况下都是PEOPLE文件。
| 归档时间: |
|
| 查看次数: |
787 次 |
| 最近记录: |