【发布时间】:2018-02-26 23:14:41
【问题描述】:
我正在尝试简化应用程序的数据库。在那个数据库中,我有两个表,比如说Patient 和MedicalRecord。我知道如果Table-A 中的任何给定行可以有at most 一行在Table-B 中,则据说两个表处于一对一关系(这意味着可以有零匹配)。
但就我而言,不是at most,而是exactly。即,Patient 中的每一行都应该有 exactly 在MedicalRecord 中的一行(没有病历就没有患者存在)。
Patient 表包含患者的所有个人详细信息,其 ID 为 PK。
MedicalRecord talbe 有他的血型、血红蛋白、bp 等详细信息,他的 ID 为 PK 和 FK 到 Patient。
我的问题是,我可以合并这两个表并创建一个表吗,
PatientDetails:personal_details 和血型、血红蛋白、bp 等
【问题讨论】:
-
如果您的描述是正确的,那么从技术上讲,这两个版本都是您关系的有效表示,您可以合并它们。你甚至可以用 1:0 来做到这一点,因为你可以简单地将每个值都留空。出于逻辑原因,您将更多地将 1:1-realtions 拆分为单独的表。但我会检查你的原始假设。虽然血型通常不会改变,但我认为血压、血红蛋白等将取决于时间,因此您可能有不同时间的多个值(例如,如果同一位患者第二次就诊)。
标签: mysql database database-design