Skip to content

Primary key (id) ranges

Mark Overmeer edited this page Feb 13, 2019 · 1 revision

As usual for SQL databases, most tables contain a sequence id. Be default, they all count from 1. In Taranis (since 3.4), we give each table a separate range. Sequences are 64 bits, so there is enough number space to give each their own billion.

In Taranis, some tables are quite complex referencing via ids from a single column to different tables. Also, it adds power to the constraint checking.

Old installations may still use ids which all start at "1". You may load an older dataset in a new database schema, so we cannot enforce a minimal value.

Allocation

  • To avoid the need to count digits in (for instance) 100000000 (is this '1'-billion or '10'-billion?), we will not assign those blocks.
  • Do not reuse ranges were freed: the identifier number space is large enough.
  • When you develop code which will probably end-up in main-stream Taranis, then request your range early. When your tables probably stay for local use, then use number ranges above 2010000000.

Allocated

  00000000 -- not used for new installations
  10000000 advisory_linked_items_id_seq
  20000000 calling_list_id_seq
  30000000 category_id_seq
  40000000 cluster_id_seq
  50000000 collector_id_seq
  60000000 constituent_group_id_seq
  70000000 constituent_individual_id_seq
  80000000 constituent_publication_id_seq
  90000000 constituent_role_id_seq
 100000000 -- not used
 110000000 constituent_type_id_seq
 120000000 damage_description_id_seq
 130000000 email_item_id_seq
 140000000 entitlement_id_seq
 150000000 errors_id_seq
 160000000 import_issue_id_seq
 170000000 import_photo_id_seq
 180000000 import_software_hardware_id_seq
 190000000 item_id_seq
 200000000 -- not used
 210000000 membership_id_seq
 220000000 phish_id_seq
 230000000 publication_id_seq
 240000000 publication2constituent_id_seq
 250000000 publication_advisory_id_seq
 260000000 publication_advisory_forward_id_seq
 260000000 publication_attachment_id_seq
 270000000 publication_endofday_id_seq
 280000000 publication_endofweek_id_seq
 290000000 publication_template_id_seq
 300000000 -- not used
 310000000 publication_type_id_seq
 320000000 role_id_seq
 330000000 role_right_id_seq
 340000000 search_id_seq
 350000000 soft_hard_usage_id_seq
 360000000 software_hardware_id_seq
 370000000 software_hardware_cpe_import_id_seq
 380000000 sources_id_seq
 390000000 statistics_analyze_id_seq
 400000000 -- not used
 410000000 statistics_assess_id_seq
 420000000 statistics_collector_id_seq
 430000000 statistics_database_id_seq
 440000000 tag_id_seq
 450000000 user_action_id_seq
 460000000 user_role_id_seq
 470000000 dossier_id_seq
 480000000 dossier_note_id_seq
 490000000 dossier_note_url_id_seq
 500000000 -- not used
 510000000 dossier_note_ticket_id_seq
 520000000 dossier_note_file_id_seq
 530000000 dossier_item_id_seq
 540000000 wordlist_id_seq
 550000000 source_wordlist_id_seq
 560000000 feeddigest_id_seq
 570000000 cve_template_id_seq
 580000000 report_todo_id_seq
 590000000 report_special_interest_id_seq
 600000000 -- not used
 610000000 report_contact_log_id_seq
 620000000 report_incident_log_id_seq
 630000000 publication_endofshift_id_seq
 640000000 stream_id_seq
 650000000 announcement_id_seq
 660000000 publication_advisory_website_id_seq   # added in 3.6
2010000000 <your own ranges>

Clone this wiki locally