Naming Standards

Naming conventions usually live in a wiki nobody reads. Sqemo turns them into rules that run on every column: you model in business terms, and the physical names are generated from a glossary your team controls.

The glossary

The glossary maps each logical word to its standard physical word — for example “Customer” → cust, “Number” → no. Type the logical name “Customer Number” and the physical column comes out cust_no, the same way every time, for everyone. The glossary can be imported and exported, and Sqemo prevents duplicate words from slipping in.

Naming rules

Naming rules control how generated words are assembled — case style and separators — and what happens when a logical name uses a word that is not in the glossary yet (unknown word mode):

  • warn — flag unregistered words so they get added to the glossary,
  • keep — use the word as-is,
  • romanize — transliterate it.

Overrides are explicit

Sometimes a physical name has to differ from the generated one. You can override it — the override is marked (manual override) and excluded from automatic regeneration, so a glossary change never silently rewrites it. Overrides are visible, which matters: an invisible override is how naming standards die.

Checking compliance

  • In the app — validation flags logical names with unregistered words and physical names that drifted from the standard.
  • In CI — the MCP/CLI package lints a project file and fails the build on violations:
npx sqemo-mcp lint schema.erd.json   # exit code 1 on violations

One standard for the whole team

With a workspace, the glossary and naming rules become a team standard that every connected ERD generates names from. Members propose new words; the standard owner approves; approved words propagate to connected projects. See Team collaboration.