Database: Add member_email_address table

This commit is contained in:
2023-09-14 22:31:27 +02:00
parent 99dd825508
commit 93dd3f42f3
3 changed files with 37 additions and 18 deletions

View File

@ -336,8 +336,6 @@ CREATE TABLE member (
postal_dest TEXT NOT NULL,
address TEXT NOT NULL,
email TEXT CHECK (email REGEXP '^[^@ ]+@([a-z0-9_\x2Däöüß]+\.)+[a-z]{2,}$') DEFAULT NULL,
default_kgnr INTEGER,
contact_postal INTEGER NOT NULL CHECK (contact_postal IN (TRUE, FALSE)) DEFAULT TRUE,
contact_email INTEGER NOT NULL CHECK (contact_email IN (TRUE, FALSE)) DEFAULT FALSE,
@ -381,6 +379,7 @@ CREATE TABLE member_billing_address (
CREATE TABLE member_telephone_number (
mgnr INTEGER NOT NULL,
nr INTEGER NOT NULL,
type TEXT NOT NULL CHECK (type REGEXP '^[a-z_]+$'),
number TEXT NOT NULL CHECK (number REGEXP '^\+[0-9]{1,3}( [0-9]+)+(-[0-9]+)?$' AND LENGTH(REPLACE(REPLACE(REPLACE(number, '+', ''), ' ', ''), '-', '')) <= 15),
comment TEXT DEFAULT NULL,
@ -391,6 +390,19 @@ CREATE TABLE member_telephone_number (
ON DELETE CASCADE
) STRICT;
CREATE TABLE member_email_address (
mgnr INTEGER NOT NULL,
nr INTEGER NOT NULL,
address TEXT NOT NULL CHECK (address REGEXP '^[^@ ]+@([a-z0-9_\x2Däöüß]+\.)+[a-z]{2,}$'),
comment TEXT DEFAULT NULL,
CONSTRAINT pk_member_email_address PRIMARY KEY (mgnr, nr),
CONSTRAINT fk_member_email_address_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
ON UPDATE CASCADE
ON DELETE CASCADE
) STRICT;
CREATE TABLE area_commitment (
fbnr INTEGER NOT NULL,
mgnr INTEGER NOT NULL,
@ -756,4 +768,4 @@ CREATE TABLE credit (
CONSTRAINT fk_credit_payment_member FOREIGN KEY (year, avnr, mgnr) REFERENCES payment_member (year, avnr, mgnr)
ON UPDATE CASCADE
ON DELETE RESTRICT
);
) STRICT;