Groups are defined in the
group table and can have an optional description in addition to the mandatory name of the group.
||integer||Yes||Unique ID for database operations|
||boolean||No||Flag whether domains in this group should be used
||text||Yes||Mandatory group name|
||text||No||Optional field for arbitrary user comments|
Group management is implemented using so-called linking tables. Hence, it is possible to
- associate domains (and clients!) with any number of groups,
- manage adlists together with groups,
- use the same groups for black- and whitelisted domains at the same time.
The linking tables are particularly simple, as they only link group
ids with list
ids. As an example, we describe the
domainlist_by_group table. The
client linking tables are constructed similarly.
0) is special as it is automatically assigned to domains and clients not being a member of other groups. Each newly added client or domain gets assigned to group zero when being added.