 <p>Your design is correct. The number of tables is a reflection of the complexity (or not) of the application.</p> <p>The "paradigm to efficiently design this kind of scenario" is the relational model and you are designing in terms of tables because you are working within that paradigm.</p> <p>Your notions about "the downside" and "lookups" and "efficiency" presume implementation aspects without justification. The DBMS takes your declarations and updates and answers your queries and hides how. Implementation issues do arise, but far from the level of experience and knowledge suggested by your question.</p> <p>Just make a staightforward design.</p>