The way it is now (in part 5), I think there are some problems regarding the integrity of data stored in the PrimaryCardHolderID column. I see that you have not created the Account_PrimaryCardholder_FK foreign key, probably to allow entering a 0 for the PrimaryCardHolderID in the _AccountCreate procedure. A better design would be to allow nulls in this column and keep the foreign key. Why? Because now you can delete a card holder (with the CardholderDelete procedure) while it is the primary card holder for an account (as long as there is no card for that holder).

Razvan