How do you design a database schema to prevent redundant data while maintaining fast query performance?