When using underscores, should they be reserved to junction tables? Say you have the following tables


company (contains companies)
industry (contains industries)
company_type (contains company types, e.g., Public, Private)
company_status (contains company statuses, e.g., Acquired, Operating)
company_industry (junction table between company and industry)


Using an underscore in the company_type and company_status tables makes it a bit difficult to easily glance at the database and tell which tables are junction tables.

Should underscores be reserved for junction tables? If so, how do you deal with a table like company_type? Simply naming it 'type' is non-descriptive, and is a SQL reserved keyword. As well, what if you have school types and you want to keep them separate from company types? I.e., school_type table and company_type table.

As an aside: I'm looking for a good resource on naming in database design. It's the one thing troubling me more than anything else.
If you want to use underscore in that way, try using CamelCase the rest of the time.

Then you'd have CompanyType , and if a company could have many types, you could have a junction table called Company_CompanyType