Designing data partitioning solutions for tables and indexes