I am trying to build a table that has a value that is actually a second table and that table also has a value that is actually a third table. My end result needs to be representative of a C++ object that has an array of objects as one of its data types. I have thought using the value for the next layer object in MySQL as a reference to another table but this would make the number of tables grow exponential. my program could handle the large number of tables as long as I don't reach the max number of tables for MySQL but I don't know this value either. So My question is either how do I make a table that contains a table that contains a table or what is the max number of tables both for MySQL?