data/primary-keys

primary keys Shipped

What this lens looks for

Validates primary key strategy selection, ensures INTEGER PRIMARY KEY is used correctly as rowid alias, assesses AUTOINCREMENT necessity (gap-free sequences only), evaluates UUID strategies (TEXT vs BLOB, v4 vs v7), determines WITHOUT ROWID appropriateness, and confirms cross-database PK compatibility for synced tables.

What its verifier checks

  • Primary key strategy documented and justified (INTEGER PRIMARY KEY vs UUID vs composite)
  • INTEGER PRIMARY KEY correctly aliases rowid; AUTOINCREMENT only used where gap-free sequence is required
  • UUID format consistent across local and server databases if table is synced
  • UUID storage method chosen (TEXT base64/hex vs BLOB) with rationale
  • UUID generation strategy documented (v4 for randomness, v7 for sortability, application-generated or database-generated)
  • WITHOUT ROWID tables only for non-integer primary keys with clustered access patterns
  • Without ROWID tables use composite PK or TEXT/BLOB PK, never INTEGER
  • Cross-database PK mapping documented for synced tables (e.g., SQLite UUID ↔ PostgreSQL uuid type)