NULL
を許可するためにこれを解決する唯一の方法(少なくともMySQLの機能が制限されている場合) 両方のFK列の値。プライマリIDを使用して新しいユーザーを作成すると、次のようになります。
insert into users (id, primary_identity)
values (1, null);
insert into identities (id, name, belongs_to)
values (1, 'foobar', 1);
update users
set primary_identity = 1
where id = 1;
commit;
このソリューションの唯一の欠点は、ユーザーにプライマリIDを強制できないことです(列をnull許容にする必要があるため)。