Toto je špatný design. Stačí vytvořit 2sloupcový primární klíč a k němu 2sloupcové cizí klíče. Toto je základní anti-vzor nazývaný „kódování informací v klíčích“, které se (proto) nazývají „chytré“, „inteligentní“ nebo „zřetězené“ klíče. Dobrý klíč je "hloupý" klíč.
Např. :
Kromě toho to není potřeba udělat to.
Mnoho DBMS umožňuje "počítané sloupce", jejichž hodnoty se automaticky počítají z jiných sloupců. Chcete-li z něj udělat primární klíč nebo cizí klíč, obvykle byste jej potřebovali „přetrvávat“, tj. zabírat paměť jako běžný sloupec vs, aby se počítalo v případě potřeby jako pohled. MySQL je nemá, ale 5.7.5 má nějakou funkcionalitu, kde se nazývají "generované sloupce", které lze "ukládat". Ale nedělejte to pro PK nebo FK!
Skutečným problémem návrhu je zpracování databáze/podtypů SQL/hierarchie/dědění/polymorfismus .