C#我需要为每位患者创建一个新表

时间:2016-10-22 16:56:28

标签: sql database

我正在制作一个程序,而且我被困在患者病史部分。我不确定是否应该为每个病人制作一张桌子,但是由于我创建的所有桌子,它会在某些时候完全使程序变慢。我真的在这方面达到了最低点。需要一些专业建议,我仍然是编程新手,仍然想学习。伙计们需要一些帮助

4 个答案:

答案 0 :(得分:0)

您应该做一个患者表和患者历史表。 它取决于您需要存储在History表中的内容,但Patient-History表应该具有Patient表的外键。

答案 1 :(得分:0)

必须只有一个包含历史记录的表和患者ID(来自患者表的ID)必须在一列中引用。因此,您可以通过简单的查询检索每个患者病史。

答案 2 :(得分:0)

你的意思是数据库中的新表吗?虽然这在某些引擎中是可行的,但除非您对它有特殊要求(例如:在每个患者的每行权限中不分配权限),您应该为患有ID的患者使用表格,然后是患者病史表中的患者ID列,其参照完整性(通过外键)将它们链接起来。

首先,请参阅Database Normalization。在某些情况下,您可能需要Denormalization来提高性能(或者在极少数情况下需要安全性),但一般建议是为数据库规范化创建设计,然后根据需要进行非规范化。

答案 3 :(得分:0)

SQL'table'有点类似于C#'class'。因此,不是在编码时为每个患者定义新类,而是在运行时为每个患者实例化一个类的实例。对于每个患者而言,使用SQL而不是CREATE TABLE PatientJoeBloggsINSERT INTO Patients VALUES ( 'Joe Bloggs' ... );

现在我不知道你的C#课程是什么样的,但我在我的时间里看到了一些患者的医疗记录模式,我可以告诉你,你需要很多桌子。有些表可能有历史因素(咨询,药物治疗等),但其他表可能没有(例如近亲)。祝你好运!