As a user can have many addresses (home / work / somewhere else) I would suggest to support multiple addresses for one user.
So that Model_Address includes user_id and not the User_Model address_id
Doing it that way shipping and billing should be more decoupled. Maybe just add another column to the Model_Address to identify if that is a shipping or a billing address.