Това е лош дизайн. Просто направете първичен ключ с 2 колони и външни ключове с 2 колони към него. Това е основен анти-модел, наречен "кодиране на информация в ключове", които (по този начин) се наричат "интелигентни", "интелигентни" или "свързани" ключове. Добрият ключ е "тъп" ключ.
Напр.: :
Освен това няма нужда за да направите това.
Много СУБД позволяват "изчислени колони", чиито стойности се изчисляват автоматично от други колони. За да направите един първичен ключ или външен ключ, обикновено ще ви е нужен той да "постоянен", т.е. да заема памет като нормална колона срещу просто да се изчислява, когато е необходимо като изглед. MySQL ги няма, но 5.7.5 има някаква функционалност, където те се наричат "генерирани колони", които могат да бъдат "съхранени". Но не правете това за PK или FK!
Действителният проблем с дизайна е обработката на подтипове на база данни/SQL/hierarchies/inheritance/polymorphism .