Hallo zusammen,
ich bin dabei einen dedicated Server zusammenzubauen (fuer mich und ein paar Freunde). Dabei ist die Wahl auf PSQL gefallen und nun würde ich gerne von diesem HowTo: ISP Mail Server mit Exim 4, Dovecot, MySQL und SpamAssassin auf Debian GNU/Linux etch
Die Datenbankschemata auf PSQL anpassen. Könnt ihr mir dabei helfen, bitte?
Ich habe mir das bisher so überlegt:
CREATE TABLE mail_accounts (
id serial NOT NULL,
local_part varchar(255) NOT NULL default ' ',
domain serial NOT NULL,
forward varchar(255) NOT NULL,
cc varchar(255) default NULL,
name varchar(255) NOT NULL default ' ',
pwclear varchar(255) NOT NULL default ' ',
pwcrypt varchar(255) NOT NULL default ' ',
is_away varchar(1) NOT NULL default 'N',
away_text text,
spam_check varchar(1) NOT NULL default 'N',
spam_purge varchar(1) NOT NULL default 'N',
virus_check varchar(1) NOT NULL default 'N',
is_enabled varchar(1) NOT NULL default 'Y',
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
CHECK (is_away IN ('Y','N')),
CHECK (spam_check IN ('Y','N')),
CHECK (spam_purge IN ('Y','N')),
CHECK (virus_check IN ('Y','N')),
CHECK (is_enabled IN ('Y','N')),
PRIMARY KEY (id),
UNIQUE (domain,local_part)
)
CREATE TABLE domains (
id serial NOT NULL,
domain varchar(255) NOT NULL,
is_enabled varchar(3) NOT NULL,
mail_host serial NOT NULL,
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
CHECK (is_enabled IN ('yes','no')),
PRIMARY KEY (id)
)
Probleme bisher:
-Wie bilde ich das auto_increment korrekt ab? (serial ?)
-Wie bilde ich den enum korrekt ab? (check ?)
-Wie bilde ich primary key, unique key und key korrekt ab? ( ? )
-Passt das nachher, wenn ich bei den Daten timestamp statt integer verwende? ( ? )
-Wie passe ich die constraints an?
Vielen Dank für eure Hilfe!