How to change table for Rails models on the fly

Maybe you need your multi tenant application database to partition horizontally (shard). Probably you want to store different customers data in different tables.

Basic Database Design tips for Relational Database

A poorly designed database can make your life hell as a dev while optimizing an app. On the other hand, A good design can speedup your development process along with the performance of the app.