2.6. Database

This section describes generic database architecture. Some databases may have different structure, check their documentation.

Figure 2-2. Database in a picture

vq_domains. This is a table that keeps informations about registered domains. At this time it includes only domains default quota values for users. There's special domains called "global" it is used to keep information that are copied to newly created domains.

vq_domains_aliases. This table has informations about aliases for registered domains. Alias can be another name, or an IP address. Anything what you want. This table is used when trying to guess domain's real name.

vq_domains_ips. Includes IP address associated with domain, only one IP address for a domain is allowed.

vq_users. Every user registered in v-q system has an entry in this table. All users for all domains are stored in one table. Dropped stupid design from previous version where every domain has it's own table - it was not possible to create simple, global relations.

vq_users_conf. Mailbox configuration. Here a stored informations about redirections, automatic responses and whatever you version supports.

vq_emails_banned. Table keeps list of domains and logins that are not allowed to be registered.

vq_info. Informations about database schema, at this time only one is supported - schema version.

vq_log. This table is used to store logs about events in system. It's used for example by user_auth. It includes only informations about users logins. Other events are stored elsewhere.

vq_view_*. Views that are used to retrieve informations from the database without the need to write queries in code. Thanks to this you can change database organization and all you need is to update views. No need to compile program again.

Hosted by: BerliOS Logo SourceForge.net Logo