Я разрабатываю метод объединения двух источников данных (например, запросов).DB Design: тот же столбец, используемый для 2 разных внешних ключей
У меня есть таблица с именем QueryField со следующей структурой:
QueryID
FieldID
FieldName
....
Если у меня есть 2 записей на QueryField
QueryID FieldID FieldNAme
------------ --------- ----------
1 1 CustomerID
1 2 CustAddress
2 3 CustNo
2 4 CustomerPhone
Я хочу, чтобы новый table QueryFieldJoin, который определяет, какие поля в 2 запросах использовать для соединения. Моя идея состояла в том, чтобы иметь следующую структуру
LeftJoinFieldID (FK from FieldID of QueryField)
RightJoinFieldID (also FK from FieldID of QueryField)
JoinType (intersect, outer join).
PrimaryKey представляет собой сочетание LeftJoinFieldID и RightJoinFieldID
LeftJoinFieldID RightJoinFieldId JoinType
-------------- ---------------- --------
1 3 Intersect
Это будет работать, но я чувствую, что это не самый лучший дизайн БД, имеющий такое же поле как чужой для двух разных столбцов на другом столе. Может ли кто-нибудь предложить лучший подход?
Лучший подход: имеют две ** отдельные колонки, каждая из которых является FK для одного из отношений FK. Таким образом, вы также можете ** принудительно использовать ** отношения FK в базе данных –
+1 для приведенного выше комментария – Jerome
Я не уверен, что я вас понимаю, у меня уже есть 2 отдельных столбца в таблице QueryFieldJoin? – keitn