1. A resource access filtering system, comprising: one or more server devices, in combination, comprising: a generator unit arranged to create a database structure, wherein the generator unit comprises a categorization unit arranged to provide a plurality of resource identifiers each associated with a respective category code, a hashing unit arranged to hash each of the plurality of resource identifiers to provide a hash value, and to divide the hash value into at least first and second hash portions, and a storing unit arranged to output the database structure including at least a hash array and a main data section, wherein the main data section comprises the second hash portions and the respective category codes divided amongst a plurality of main data blocks, and the hash array comprises the first hash portions each associated with a pointer to a respective one of the main data blocks in the main data section; and a filter unit arranged to control access to a resource with reference to a category code obtained from the database structure according to a demanded resource identifier, wherein the filtering unit comprises a communication unit arranged to obtain the demanded resource identifier in relation to a resource access request made by the client device, a database access unit arranged to return a category code appropriate to the demanded resource identifier from the database structure, by generating a search hash value based on the resource identifier and dividing the search hash value into at least first and second hash portions, identifying a respective main data block in the main data section of the database structure by consulting the hash array using the first hash portion and retrieving the category code from the respective main data block according to the second hash portion, and a control unit arranged to determine a control action in relation to the resource access request made by the client device with reference to the category code obtained by the database access unit, wherein the hashing unit is arranged to divide each of the hash values into at least the first and second hash portions and a third hash portion, and the storing unit is arranged to discard each of the third hash portions; and the database access unit is arranged to divide the search hash value derived from the demanded resource identifier into corresponding at least the first and second hash portions and a third hash portion.