恥ずかしながら近頃 DataBase に真っ向と向き合って触れていないわけですが、 とてもいい勉強になりました。 プライマリーキーに ID を導入というコードときちんと分離して、ID はシステム用(不変)、コードは業務用(変動)と考えるあたりがとても分かりやすいです。
教科書的には間違っているのかもしれないけど、そもそも教科書が実務で 使えると立証されているわけではないですし。
自分が DB を設計するときは、複合キーはなくなるでしょう。 Unique や Not Null をきちんと割り振れば問題なしです。 あとは業務なり実践してみないとだめですね。導入するときの反対意見を押さえる知識をもっと身につけないとだめかー。
某システムのように 1 つのテーブルに主キーが 10 個を超えるという悪夢からさようならさせないと。