牙科系统逻辑 - 用户 - 数据库

时间:2015-09-21 23:09:49

标签: database security database-design relational-database business-logic

我正在开发一种新的牙科系统,将在某些特定国家用于牙医。我有基本的要求和设计几乎完成但我不确定如何处理pacients。这是我的两个选择:

  1. 在一个表中添加所有pacientes(pacient_table)并在另一个表(link_table)中的pacient-dentist之间创建一个链接,我将存储pacient_id和dentist_id。这样做,如果任何其他牙医添加相同的pacient,他们只需要添加该人的ID,所有细节将自动检索并与该牙医一起创建新链接。

  2. 为每位牙医创建一个新数据库。可以存在同一个pacient的多个实例(这应该不是问题)。

  3. 我认为我更喜欢选项1)因为我喜欢这个想法在那个pacient和牙医之间有一个pacient和多个链接,而不是每个牙医添加的相同的pacient。

    请告诉我您认为哪个选项最好,以及为什么。 我们也欢迎新的选择:)

    谢谢!

2 个答案:

答案 0 :(得分:2)

你肯定在#1的正确轨道上。 在这种情况下,最好的设计可能是使用由三个表组成的单个数据库。

第一个表,牙医,将存储关于办公室中每个牙医的所有属性(列),其中dentist_id是其主要密钥。该表代表实体'牙医'。每行当然代表一位牙医。

第二个表,患者,将存储关于每个患者的所有相关属性(列),其中patient_id是其主键。该表代表实体“患者”。与上述类似,每行代表一名患者。

第三个表(概念上)放在牙医和患者之间,可能将其命名为“治疗”,“访问”或某些类似的适当名称(您提到的链接表)。该表的目的是捕获和表示患者与牙医一起访问的事件。它将拥有自己的主键,其中dentist_id和patient_id为外键。它还可以包括date_of_visit等。这第三个表是一个复合实体,它统一并给出牙医和患者关系的结构。

对这种模式的正确查询将揭示哪位牙医在发生时咨询了哪些牙医;以及哪些牙医治疗过的患者最多,等等。

我希望这会有所帮助。祝你好运!

答案 1 :(得分:1)

选项一在架构上是“纯粹的”。然而,它遭受了企业不喜欢与他人共享数据的现实。根据我的经验,企业不太可能意识到他们花费大量精力开发的记录可能会被竞争对手直接使用。

出于这个原因,我建议从商业角度来看,选项2更合理。

另请注意,在许多西方国家,医疗数据的处理方式存在严重限制。在美国,如果没有大量的认证和赔偿保险以及大公司的支持,你将无法出售。

相关问题