I've been doing some software design recently. One interesting thing that came up was database table prefixes.
Some software likes to prefix tables, either with a standard prefix or something variable. One reason is that it increases security; that is, you are less vulnerable to SQL injection if the table names are not fixed.
I went forward with table name prefixes, but not for security reasons. The better reason is simply to increase unique terms in the codebase.
In software maintenance or support, you will find yourself digging in unfamiliar code. It's quite challenging at times, and navigating that maze is easier with unique terms.
For example, if a table is named "user", it would be much more difficult to identify sections of code that interact with the "user" table than if it were named "tn_user".