So at this point, you'd have decided which of those three patterns you're using. I can already tell you that its "joined", because you have two separate tables (so not single) and your "base" table has a column that is not in the "sub" table (so not concrete).
I've attached that, laying out Header and Detail1 explicitly. Then, since you said you have "detail2, 3, 4,...N" I illustrate a function to create more Detail classes dynamically. You can run this example as is, as it creates its own SQLite database. I hope it helps!