数据库表中有两个fk到同一个表

4uqofj5v  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(256)

我知道将两个fk放在同一个表中并不“健康”,但这是我的场景:第一个人运行测试,另一个人将它添加到db中。testresult链接到创建结果的人和在db中下载的人。对于这种情况,您的解决方案是什么?有两个fk到userinfo可以吗?
当我想用entity framework生成第二个fk时:“无法确定dataaccesslayer.entity.testresult类型上外键的复合外键顺序。在复合外键属性上使用foreignkey数据注解时,请确保使用列数据注解或fluent api指定顺序。”

wqsoz72f

wqsoz72f1#

在两个表之间有多个外键是很正常的。这取决于表之间关系的业务定义。
为什么你认为这不正常?
无论如何,作为一个例子,您可以如下所示:

create table UserInfo (
  id int primary key not null,
  name varchar(20),
  password varchar(20),
  role int
);

create table TestResult (
  id int primary key not null,
  added_by int references UserInfo (id),
  created_by int references UserInfo (id)
);

相关问题