Таблица базы данных с двумя FK в одной таблице - PullRequest
0 голосов
/ 14 июля 2020

Я знаю, что иметь два FK в одной таблице - это не здорово, но это мой сценарий: первый человек запускает тест, а другой добавляет его в базу данных. TestResult связан с человеком, создавшим результат, и человеком, который загрузил в БД. Каково ваше решение для этого сценария? нормально иметь два FK для userInfo?

, когда я хочу сгенерировать второй FK с Entity framework: «Невозможно определить порядок составного внешнего ключа для внешнего ключа для типа DataAccessLayer.Entity.TestResult. При использовании Аннотации данных ForeignKey для свойств составного внешнего ключа гарантируют, что порядок указан с помощью аннотации данных столбца или свободного API. "

1 Ответ

1 голос
/ 14 июля 2020

Совершенно нормально иметь несколько внешних ключей между двумя таблицами. Это зависит от бизнес-определения взаимосвязи между таблицами.

Почему вы думали, что это ненормально?

В любом случае, например, вы можете сделать это, как показано ниже:

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)
);
...