2013-10-14 37 views
-1

我创建了一个名为'hmdb'的数据库,并在该数据库中使用wamp将两个表命名为table1和table2。这两个表都有ID字段作为主键。我的java代码实际上首先检查ID是否存在于table1中,如果是的话(实际上这是为了检查它是否是现有的用户,如果不是,那么患者必须先登记自己),然后打开医生填写的框架患者信息与他的ID。重复主键的条目“ID”?

有关的问题是,当下一次医生填写患者信息时,它表示主键“ID”重复输入。这是我的问题:是否有任何方式,对于相同的'ID'(主键),我们可以在数据库中插入多个记录。在我的项目中,很可能有一名具有其独特ID的患者可以不止一次去看医生,因为医生必须记录他的诊断结果。在数据库中提供详细信息。还有一个名为“访问日期”的字段,所以我认为我应该将table2的主键更改为“日期”(考虑到一名患者最多只能在一天内访问医生),因为日期总是不同的,所以我可以提供相同'ID'的数据。为此,我有一个疑问,所以我想问一个问题:如果有两个表,我们可以为两个表使用不同的主键,或者需要有相同的主键?

+0

你应该有第三张桌子。如果table1有患者和患者信息,table2有医生和医生信息(您的数据库名称和表格名称应该更具描述性),那么您还应该有table3作为“访问”,或者每次访问都有唯一ID ,并且这些字段包括患者ID,医生ID以及关于具体访问的更多信息。 – nhgrif

回答

1

这听起来像你需要为访问创建一个主键。像VISIT_ID。因为病人可以每天看一次医生(可能不常见,但很可能),所以我会使用制造的密钥作为VISIT_ID。查看大多数DBMS常见的自动编号或自动编号。它们保证为该表格生成唯一的密钥。

在访问表中,您还需要存储医生和患者的外键,这些外键分别链接到包含您的文档和患者信息的表格。

祝你好运!

+0

非常感谢你,我会尝试它,让你确认如果工作。 – Amol

2

这里的解决方案是有一个多对多的关系。您需要一个带有doctor_id和patient_id映射的额外表格。

1

首先主键是唯一标识一行。其次,创建一个名为patient_id的字段,并将其用作患者ID,而不是主键。您也可以将其作为另一张表格的外键,用于保存患者记录。而外键将需要成为主键。

相关问题