我不是SQL专家,所以我肯定做错了什么。我在这里读到一些关于需要主键的问题。按照我创建这个表的方式,我找不到实际上有一个唯一键的方法。这是一个调查类型的数据库。我有一个表用于主要细节,如日期、分诊号和涉及的人员。另一个表用于问题结果,还有一个表用于评论。我本来想让分诊号唯一,但是可能会有多个人参与,所以同样的分诊号会被多次使用。涉及的人员也可能出现多次。唯一真正的事情是将人员与分诊号组合起来。我考虑过自动键,但它没有任何作用。对于调查类型的表,使用两个标识符是否可以是可接受的做法?
我不是SQL专家,所以我肯定做错了什么。我在这里读到一些关于需要主键的问题。按照我创建这个表的方式,我找不到实际上有一个唯一键的方法。这是一个调查类型的数据库。我有一个表用于主要细节,如日期、分诊号和涉及的人员。另一个表用于问题结果,还有一个表用于评论。我本来想让分诊号唯一,但是可能会有多个人参与,所以同样的分诊号会被多次使用。涉及的人员也可能出现多次。唯一真正的事情是将人员与分诊号组合起来。我考虑过自动键,但它没有任何作用。对于调查类型的表,使用两个标识符是否可以是可接受的做法?
重要部分:
"... 可以涉及多人,因此相同的分类号码可能会被多次使用。参与的人也可以出现多次。"
根据您的评论,例如这两个字段中的数据:
Triage Person
------ ------
1 PersonA
1 PersonB
...
7 PersonA
7 PersonB
您的问题比较笼统,我没有足够的信息给您一个确定的答案,但希望下面的评论能有所帮助。
使用复合主键(由2个或更多列组成的键)并不是问题。它通常用于链接表中,例如在多对多关系中。
需要考虑的一件事是,如果您想从其他表中引用具有复合主键的表,您将不得不在外键中引用2个列,在所有连接中都要这样做等等。创建一个单独的列作为主键(例如自动递增数字)可能更容易。