
In the Person table, either the Citizen_IdentityID or the Foreigner_WorkPermitID will be null.
The PersonID_ID holds either the value of the Citizen_IdentityID or Foreigner_WorkPermitID (whichever that is not null).
In other words, PersonID_ID is dependent on the value of either Citizen_IdentityID or Foreigner_WorkPermitID.
How should I structure the design for normalization?
The above entities are just a simple substitution of the actual use case.