3,035
edits
Changes
→Breakpad Database
PostgreSQL 8.2 or higher should be used because it offers things that MySQL does not have:
* Partitioning if we need to scale the database in the future, which will likely happen if we plan on keeping more than 3 months worth of data. For example, we could partition by the week date and have the db create a new child table for each new month as time goes on, then pop off outdated partitions once they become too old but keep them in another db for since-beginning-of-time queries. Popping the old tables off the "stack" could be done using a backend script/procedure/cron -- whatever.
* Arguably better performance for larger data sets (read Google if you want to, but most of this lies in partitioning and bitmask joins)
* More precise datatypes (adhering to SQL standards is a plus)
The current schema has:
A major concern about over-normalization is data insertion and the problems it presents for the processor, which should probably be transactional and may have to do lookups and some db magic in order to successfully insert new records.