• First, thanks for your time. Sorry If I'm communicating poorly.

    Imagine the sets describe locations: North America, USA, Georgia, Fulton County, Atlanta.

    I might describe this relationship in a relationship table (I'm excluding the actual person and set tables and using names instead of Ids for clarity):

    Parent Set | Child Set

    ============================

    North America | USA

    USA | Georgia

    Georgia | Fulton County

    Georgia | Dekalb County

    Fulton County | Atlanta

    Dekalb County | Decatur

    Person | Set

    ================

    Joe | Atlanta

    Jane | Decatur

    Now, I have an extremely frequent and latency-sensitive query that says "Give me all the people (or sets) under Georgia". My thought is to make this query really fast by projecting it into this shape:

    Person | Contained By

    ==============

    Joe | Atlanta

    Joe | Fulton County

    Joe | Georgia

    Joe | USA

    Joe | North America

    Jane | Decatur

    Jane | Dekalb County

    Jane | Georgia

    Jane | USA

    Jane | North America

    And then another one for SetsContainedBy.

    Sadly, Using actual snowflake schema has two distinct disadvantages in my case, the first is that sets (and dimensions) are really dynamic, and that I can have sets be child to multiple other sets (for example, Atlanta actually lies in two counties, Fulton and Dekalb).

    I hope that clarifies my goal, and why the recursion seems like an obvious win to a non-dba. Thanks again.