added constraints for foreign keys, primary keys, and uniqueness