better design for database