Common Column Naming Mistakes
The naming errors that cause the most pain in real schemas — and the one-line fix for each.
1. Reserved words as column names
order, user, group, select, key — every one forces quoted identifiers, confuses ORMs, and breaks syntax highlighting. Fix: qualify the word — order_id, user_name, sort_order.
2. Vague catch-all names
data, value, info, type, status, name (when the table has five name-like things). Fix: say what it is — payload_json, order_status, display_name.
3. Mixed casing in one schema
firstName next to last_name next to Email. In PostgreSQL this is worse than ugly: unquoted camelCase folds to lowercase, so the mixed-case columns only work when double-quoted everywhere. Fix: standardize on lowercase snake_case; migrate stragglers.
4. Hungarian notation and type prefixes
str_name, int_count, dt_created — a relic from systems without schema introspection. The type is already in the schema; the prefix just adds noise. Fix: drop the prefix, keep the descriptive name.
5. Repeating the table name on every column
user_first_name, user_last_name inside users. In SELECT lists and ORM models the prefix is pure repetition. Fix: first_name — except keys, which should match across tables.
6. Inconsistent timestamp conventions
created_at in one table, creation_date in the next, date_created in a third. Time columns are the most-queried columns in most schemas; inconsistency here hurts daily. Fix: created_at / updated_at everywhere, no exceptions.
7. Abbreviations only the author knows
usr_eml, qty_ord, amt_due. Saves keystrokes, costs comprehension — and autocomplete made the keystrokes free anyway. Fix: write the words out: user_email, amount_due.
8. Spaces and special characters
"First Name", phone# — legal in some databases when quoted, miserable everywhere else. Fix: letters, digits, and underscores only.