Skip to content

Database Naming and DDL Patterns ​

Page intent This page captures the practical naming conventions and DDL patterns implied by the verified source and by the existing NGB platform structure.

Trust level ​

  • Verified anchors: NGB.Runtime/Documents/DocumentService.cs, NGB.PostgreSql/NGB.PostgreSql.csproj, NGB.Migrator.Core/PlatformMigratorCli.cs
  • Architecture synthesis: yes
  • Template guidance: yes

Chapter navigation ​

Verified source anchors ​

Head/part document table convention is explicit in runtime comments ​

Confirmed in:

  • NGB.Runtime/Documents/DocumentService.cs

Verified statement from the runtime comments and behavior:

  • head table pattern: doc_*
  • part table pattern: doc_*__*
  • persistence model: common registry + typed head table

PostgreSQL provider embeds SQL migrations as resources ​

Confirmed in:

  • NGB.PostgreSql/NGB.PostgreSql.csproj

Verified behavior:

  • SQL migrations under db/migrations/**/*.sql are embedded resources.

Migrator is designed around migration packs and deterministic discovery ​

Confirmed in:

  • NGB.Migrator.Core/PlatformMigratorCli.cs

Documents ​

  • common document registry: platform-level common table(s)
  • typed head tables: doc_<domain>_<type>
  • typed part tables: doc_<domain>_<type>__<part>

Examples for an American-market vertical:

  • doc_trd_sales_order
  • doc_trd_sales_order__lines
  • doc_trd_price_update

Catalogs ​

Recommended pattern:

  • cat_<domain>_<type>

Examples:

  • cat_trd_customer
  • cat_trd_product
  • cat_trd_warehouse

Operational registers ​

Recommended pattern:

  • or_<domain>_<register>
  • supporting totals/turnover/effective objects may use suffixes that make read purpose explicit

Examples:

  • or_trd_inventory
  • or_trd_settlement

Reference registers ​

Recommended pattern:

  • rr_<domain>_<register>

Examples:

  • rr_trd_pricing
  • rr_tax_sales_rules

DDL principles ​

  • Prefer explicit, stable names.
  • Keep platform/vertical prefixes readable.
  • Avoid opaque generated names for core business tables.
  • Make migration scripts deterministic and pack-friendly.
  • Design for append-only history where the domain requires auditability.

Released under the Apache License 2.0.