"You have a lot of comments there."
Yes I know, and I try to answer them to the best of my ability.
"I see a couple of questions, too."
I know, I did send in them on purpose.
"If I can add anything to help ..."
I think you can.
"In my databases I will prefix table names with tbl. I will also prefix table names with lst. If a table will behave like a list, for example a list of states, the table would be named something like 'lstStates'. Notice how I did not use the word 'lookup'?"
I understand what you say, and what you do. But why do you do it? I mean, it has long ago been established several basic design practices which are explained in every beginners book and also on a lot of other places. And one of the things they always say is that, whatever you call it, "lists", "validation tables" or something else, is a quite normal thing to include in a database. And if you look at, say twenty MS Access example databases taken from Microsoft's own production, or made by the authors of the design books, perhaps fifty percent of them actually also use validation tables.
And, now and then, you can also clearly see this in the diagrams in the books, or written directly in the property field of the table like: "Validation table for...", etc. Can you please explain to me what you think is the problem with calling validation tables for what it is, rather than calling them a "list" and give a hint in the table name, starting it with "lst..."?
"Where do you draw the line?"
When there are two choices or more of anything that must be validated, because it will later be used in a form or report, and then the choices must be restricted to certain values in a certain field in a certain table, due to the agreed business rules for that very database.
"It is just semantics to me. Call it what you want"
If it is just semantics to you, why cannot you then just call them "validation tables", why do you need to avoid that word, and instead use "list" which is functionally the same thing as you describe it?
"If you want to understand the database, understand the relations."
That is exactly what I am trying to do.
"If you want to understand an application, understand the Business Rules."
I agree. But if the business rules not are documented, then you cannot understand them in any other way than through reverse engineering, and of course speak with people at the actual place if someone happens to be able to explain.
" If you want to make it more complicated than that..."
I never have a conscious intention for making anything more complex than it already is.