validations to assert valid assoications

Changing the validations so that the models check that the foreign keys are present and also valid.