Document-ID Structure

Some research projects have the requirement to group the records into categories that can represent things like, for example, location, time periods, a combination of both or anything else that can be used as a category. This can be done in DRDB with the document IDs and is configured in config/id-structure.php.

This file contains the structure of the database id field which has a number of ranges that represent different pieces of data. The structure can be used in various places for things such as, for example, generating a list of 'categories' to limit database searches to subsets of the database content.

Here is an example:

In the database, the ID has 10 digits, i.e. up to 1.999.999.999.
As an example, the ID could be split as follows for data that was
imported from several sheets in an Excel file. Each sheet contains a
number of documents that were written in a certain decade and in 
a certain country. In other words, the sheets represent decades/countries
and thus became the category identifier in the DRDB database.

1.    100.     000.100

Excel File   : 1 Digit  (up to 9)     --> Always 1. Was initially thought to 
                                          be used to to separate documents of 
                                          different countries. However, PHP
                                          uses 32 bit integers and resorts to
                                          floats for higher numbers. Therefore
                                          this is a future option. 

                                      --> DANGER! DANGER! MYSQL also 
                                          stores the ID as 32-bit integer limit
                                          here with 2.147.483.647. BIGINT data
                                          type is available that should fix
                                          things. Not implemented so far!

Sheet Number : 3 digits (up to 999)   --> to distinguish decades and countries 

                                          Decades + Country 1 is assinged 001-030
                                          Decades + Country 2 is assigned 031-050

Doc. Number: 6 digits (up to 99999)   --> 99 document ids in between each
                                          document to have room to insert 
                                          documents later on

Special numbers:

In addition, all numbers in the array 0 <= 1000 are special numbers used to
group several categories together for search and display purposes. A
multi-category group then includes all groups from the first special number
to the next special number (or the end of the array if non follows). 

Note: The special numbers are handled in the getAndSetSearchLimit() function that
is also contained in the configuration file (id-structure.php).


$id_categories = array(
        'Demo - All'                         => 1,
        'Demo - set 1'                       => 1001000000,
        'Demo - set 2'                       => 1002000000,

        '--------'                           => 2,
        'More Demo - All'                    => 2,      
        'More demo - set a'                  => 1031000000,
        'More demo - set b'                  => 1032000000,