added unique constraints to opinon table per user and added validation to model