We have an application that stores operational data as a single master table and a set of child tables. Based on the class of data, a different child table gets joined in e.g. master inner_join pets -> gives us pet data master inner_join cars -> gives us car data It works reasonably well, and it makes the developer's lives easier.