Ini adalah desain yang buruk. Buat saja kunci utama 2 kolom, dan kunci asing 2 kolom untuk itu. Ini adalah anti-pola mendasar yang disebut "mengkodekan informasi dalam kunci" yang (dengan demikian) disebut kunci "pintar", "cerdas" atau "bersatu". Kunci yang baik adalah kunci yang "bodoh".
Selain itu, tidak ada perlu untuk melakukan ini.
Banyak DBMS mengizinkan "kolom terkomputasi" yang nilainya secara otomatis dihitung dari kolom lain. Untuk menjadikannya sebagai kunci utama atau kunci asing, Anda biasanya memerlukannya "bertahan", yaitu mengambil memori seperti kolom normal vs hanya dihitung saat diperlukan seperti tampilan. MySQL tidak memiliki ini, tetapi 5.7.5 memiliki beberapa fungsi di mana mereka disebut "kolom yang dihasilkan", yang dapat "disimpan". Tapi jangan lakukan ini untuk PK atau FK!
Masalah desain sebenarnya adalah menangani database/SQL subtypes/hierarchies/inheritance/polymorphism .