Joh*_*n V 4 database-design erd entity-relationship
理解基数我遇到了很大的麻烦.
让我们说医生和他只能对一名病人进行心脏手术.当然有很多医生和很多病人,但模型应该是这样吗?
PACIENT-|----------|- DOCTOR meaning 1:1?
Run Code Online (Sandbox Code Playgroud)
难道不需要反映有很多医生和很多患者吗?或者这描述了两个实际实例之间的关系?
另一个例子:医院开展了一项实验,可以让许多患者参加药物试验.每项试验只测试一种药物,没有患者可以出现在一次以上的试验中.
TRIAL |- ------<-PATIENT
(很多人 - 允许更多的患者参加试验)
PATIENT|------|-DRUG
(1:1,如果一名患者只能服用一种药物)?
但是如何表明同一患者不能出现在任何其他试验中?或者,试验方面有1,试验与患者之间的关系是隐含的吗?
就实际的实体表示而言,它的工作原理如下:
如果您具有1对1关系,则只有一个实体将具有相应的表,另一个将包含在相应的记录中.
例如:1 例患者只有1张病床,1张病床只能有1名病人.在这种情况下,医院病床应由患者表中的一列(床号)或一组列表示.
如果您具有1到多个关系,则在第一个(1)实体(将是主键实体)和第二个(M)实体之间创建外键关系.
例如:1 例患者只能服用1种药物,但许多患者可服用1种药物.在这种情况下,DrugId将成为Patients表中的外键.
最后,在多对多关系的情况下,典型的技术是创建一个关联表,该关联表将包含两个外键,每个实体一个,也许还有一些其他列.
示例:1医生可以在多家医院工作,1家医院雇用许多医生.因此,我们应该有一个关联表,比如说MedicalJobs,它有外键HospitalId和DoctorId,也许还有Salary,JobId等.
关于您的试验 - 患者问题,如果一项试验有许多患者,但患者只能参加一项试验,那么它是1对多试验患者的关系,因此,您所需要的只是患者表中的外键试验.
我希望这清除它.如果您需要其他说明,请对此帖发表评论.