1. A resource access filtering system, comprising: a generator unit ( 50 ) arranged to create a database structure ( 400 ), wherein the generator unit ( 50 ) comprises: a categorization unit ( 51 ) arranged to provide a plurality of resource identifiers ( 200 ) each associated with a respective category code ( 310 ); a hashing unit ( 52 ) arranged to hash each of the plurality of resource identifiers ( 200 ) to provide a hash value ( 300 ), and to divide the hash value ( 300 ) into at least first and second hash portions ( 301 , 302 ); and a storing unit ( 53 ) arranged to output the database structure ( 400 ) including at least a hash array ( 410 ) and a main data section ( 420 ), wherein the main data section ( 420 ) comprises the second hash portions ( 302 ) and the respective category codes ( 310 ) divided amongst a plurality of main data blocks ( 421 ), and the hash array ( 410 ) comprises the first hash portions ( 301 ) each associated with a pointer ( 412 ) to a respective one of the main data blocks ( 421 ) in the main data section ( 420 ); a client unit ( 10 ) arranged to request access to a resource ( 32 ) with reference to a demanded resource identifier ( 200 ); and a filter unit ( 40 ) arranged to control access to the resource ( 32 ) with reference to a category code ( 310 ) obtained from the database structure ( 400 ) according to the demanded resource identifier ( 200 ), wherein the filtering unit ( 40 ) comprises: a communication unit ( 41 ) arranged to obtain the demanded resource identifier ( 200 ) in relation to a resource access request made by the client device ( 10 ); a database access unit ( 42 ) arranged to return a category code ( 310 ) appropriate to the demanded resource identifier ( 200 ) from the database structure ( 400 ), by generating a search hash value ( 300 ) based on the resource identifier ( 200 ) and dividing the search hash value ( 300 ) into at least first and second hash portions ( 301 , 302 ), identifying a respective main data block ( 421 ) in the main data section ( 420 ) of the database structure ( 400 ) by consulting the hash array ( 410 ) using the first hash portion ( 301 ), and retrieving the category code ( 310 ) from the respective main data block ( 421 ) according to the second hash portion ( 302 ); and a control unit ( 43 ) arranged to determine a control action in relation to the resource access request made by the client device ( 10 ) with reference to the category code ( 310 ) obtained by the database access unit ( 42 ), wherein the hashing unit ( 52 ) is arranged to divide each of the hash values ( 300 ) into at least the first and second hash portions ( 301 , 302 ) and a third hash portion ( 303 ), and the storing unit ( 53 ) is arranged to discard each of the third hash portions ( 303 ); and the database access unit ( 42 ) is arranged to divide the search hash value ( 300 ) derived from the demanded resource identifier ( 200 ) into corresponding at least the first and second hash portions ( 301 , 302 ) and a third hash portion ( 303 ).