Java 重复输入';ID';关键小学?

Java 重复输入';ID';关键小学?,java,mysql,wamp,Java,Mysql,Wamp,我已经创建了一个名为“hmdb”的数据库,在该数据库中使用wamp创建了两个名为table1和table2的表。这两个表都将ID字段作为主键。我的java代码实际上首先检查ID是否存在于表1中,如果存在(实际上这是为了检查它是否是现有用户,如果不是,那么患者必须首先注册自己),然后打开一个框架,医生用他的ID填充患者信息 值得关注的是,下次医生填写患者信息时,会显示主键“ID”的重复条目。我的问题是:对于同一个“ID”(主键),我们是否可以在数据库中插入多个记录。在我的项目中,一个拥有唯一id的

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


值得关注的是,下次医生填写患者信息时,会显示主键“ID”的重复条目。我的问题是:对于同一个“ID”(主键),我们是否可以在数据库中插入多个记录。在我的项目中,一个拥有唯一id的患者很可能会多次就诊,因为医生必须记录他的诊断,所以在数据库中输入详细信息也很重要。还有一个名为“就诊日期”的字段,因此我认为应该将表2的主键更改为“日期”(考虑到一名患者最多只能在一天内就诊一次),因为日期总是不同的,所以我可以输入相同“ID”的数据。对此,我有一个疑问,所以我想问一个问题:如果有两个表,那么两个表可以有不同的主键,或者必须有相同的主键?

听起来您需要为访问创建主键。类似于就诊ID。因为患者一天可以就诊不止一次(可能不常见,但很可能),我会使用一个制造的钥匙作为就诊ID。查看大多数DBMS中常见的自动编号或自动钥匙。它们保证为该表生成唯一的键

在就诊表中,您还将存储医生和患者的外键,这些外键链接到分别包含医生和患者信息的表


祝你好运

这里的解决方案是建立多对多关系。您需要一个额外的表,其中包含医生id和患者id的映射。

首先,主键是唯一标识一行。其次,创建一个名为patient_id的字段,并将该字段用作patient id,而不是主键。您还可以从另一个保存患者记录的表中将其设置为外键。外键必须是主键。

您应该有第三个表。如果表1包含患者和患者信息,而表2包含医生和医生信息(顺便说一句,您的DB名称和表名应该更具描述性),那么您还应该有表3用于“就诊”或每次就诊都有唯一ID的内容,字段包括患者ID、医生ID、,也许还有一些关于这次访问的更多信息。非常感谢你,我会尝试一下,让你确认是否有效。