C# 数据库中的Id使用什么数据类型?
我正在为C#winform应用程序使用Access数据库。我想创建存储患者详细信息的软件。我已为每个患者分配了一个患者Id,患者Id为“自动编号”数据类型,因此它将自动递增。我的问题是,当同一个患者再次出现时,会自动生成新的患者Id以存储其新的当前数据,但对于同一个患者,我只需要一个Id。使用一些唯一的数据作为患者表中的字段(如社会保险),当患者出现时,查找此唯一编号,确定他是新患者还是返回患者。这是一个简单的SELECT查询,类似于:C# 数据库中的Id使用什么数据类型?,c#,database,ms-access,C#,Database,Ms Access,我正在为C#winform应用程序使用Access数据库。我想创建存储患者详细信息的软件。我已为每个患者分配了一个患者Id,患者Id为“自动编号”数据类型,因此它将自动递增。我的问题是,当同一个患者再次出现时,会自动生成新的患者Id以存储其新的当前数据,但对于同一个患者,我只需要一个Id。使用一些唯一的数据作为患者表中的字段(如社会保险),当患者出现时,查找此唯一编号,确定他是新患者还是返回患者。这是一个简单的SELECT查询,类似于: "SELECT patient_Id FROM tPati
"SELECT patient_Id FROM tPatients WHERE SSN=@sNum"
嗯。。。如果是重复患者,为什么要为该患者插入新记录?注册过程的一部分不应该是查看病历是否已经存在,然后重新使用该id吗
if(patient_exists()){get_existing_id();}else{get_new_id()}
我的客户要求软件在患者来时存储所有数据(他需要这些详细信息,因为这有助于他查看患者健康的进展)我很感激您的解决方案,但如果我检索现有患者PatientId并存储患者数据,则该数据将添加到单行中,如果同一患者再次出现,则我的客户检索前2个数据并继续工作将变得不灵活(分析数据)。那么您的表设计完全错误。您应该至少有两个表:患者
和就诊
。创建新患者时,您只需在患者
中插入新记录,每次他们进门时,您只需在就诊
中插入新记录。是的,我认为这可能是我的最佳解决方案:)