project_database FR
ispyisail edited this page 2026-09-11 21:24:08 +12:00
Clone

Wiki Page Revisions

1 Commits

Author SHA1 Message Date
ispyisail 8a800dbea6 Document the project database as what it is: a derived in-memory cache
The name invites the assumption that QET has a real database behind a
project. It does not -- projectDataBase is rebuilt from the .qet XML on
every open and never written back, and almost everything that makes the
current design safe follows from that: no schema version, no migrations,
a wrong row costs nothing, the database cannot disagree with the drawing.

Covers the lifecycle, the six tables and three views, why the schema is
generated from elementInfoKeys() at runtime, why the nomenclature filter
belongs in the view rather than the element table, and the terminal
identity problem -- Terminal::uuid() is a catalog position id shared by
every instance, which is why the primary key is (uuid, element_uuid) and
why stableUuid() derives one from geometry.

That last point is the one that matters for any future persistence work:
a guessed identity is a cache miss today and a one-shot migration of
everyone's projects if the database ever becomes the file format.

EN/FR/DE.
2026-09-11 21:24:08 +12:00