HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2014-03-21 ff75a342e83f0c2fb3f3678765bf694416c3e73a
hsarback/database/schema.sql
@@ -5,26 +5,17 @@
CREATE TABLE bank_account (
    bank_account_id integer DEFAULT nextval(('"bank_account_bank_account_id_seq"'::text)::regclass) NOT NULL,
    bp_id integer NOT NULL,
    autodebit_ga boolean,
    autodebit_ar boolean,
    autodebit_op boolean,
    autodebit_ga boolean NOT NULL,
    autodebit_ar boolean NOT NULL,
    autodebit_op boolean NOT NULL,
    bank_customer character varying(50),
    bank_account character varying(10),
    bank_code character varying(8),
    bank_name character varying(50),
    CONSTRAINT ckt_bank_account CHECK (((((((bank_customer IS NOT NULL) AND (bank_account IS NOT NULL)) AND (bank_code IS NOT NULL)) AND (bank_name IS NOT NULL)) AND (((autodebit_ga = true) OR (autodebit_ar = true)) OR (autodebit_op = true))) OR (((autodebit_ga = false) AND (autodebit_ar = false)) AND (autodebit_op = false))))
    bank_iban character varying(30),
    bank_bic character varying(15),
    mandat_ref character varying(10)
);
--
-- Name: bank_account_bank_account_i_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE bank_account_bank_account_i_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
--
@@ -66,54 +57,23 @@
-- Name: basepacket; Type: TABLE; Schema: public; Owner: -; Tablespace: 
--
CREATE TABLE basepacket (
    basepacket_id integer DEFAULT nextval(('"basepacket_basepacket_id_seq"'::text)::regclass) NOT NULL,
    basepacket_code character varying(10) NOT NULL,
    description character varying(100) NOT NULL,
    sorting integer NOT NULL,
    valid boolean NOT NULL
);
--
-- Name: basepacket_basepacket_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE basepacket_basepacket_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
--
-- Name: billdata; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE billdata (
    billdata_id integer DEFAULT nextval(('"billdata_billdata_id_seq"'::text)::regclass) NOT NULL,
    bp_id integer NOT NULL,
    tariff_domain_discount_since date,
    tariff_domain_discount_until date,
    tariff_traffic_discount_since date,
    tariff_traffic_discount_until date,
    tariff_quota_discount_since date,
    tariff_quota_discount_until date,
    tariff_discount_since date,
    tariff_discount_until date
CREATE TABLE basepacket (
    basepacket_id integer DEFAULT nextval(('"basepacket_basepacket_id_seq"'::text)::regclass) NOT NULL,
    basepacket_code character varying(10) NOT NULL,
    description character varying(100) NOT NULL,
    article_number integer NOT NULL,
    sorting integer NOT NULL,
    valid boolean NOT NULL
);
--
-- Name: billdata_billdata_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE billdata_billdata_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
ALTER TABLE ONLY basepacket
    ADD CONSTRAINT pk_basepacket PRIMARY KEY (basepacket_id);
--
-- Name: business_partner; Type: TABLE; Schema: public; Owner: -; Tablespace: 
@@ -131,9 +91,13 @@
    shares_updated date,
    shares_signed integer NOT NULL,
    uid_vat character varying(20),
    free boolean NOT NULL,
    indicator_vat character varying(20) NOT NULL,
    exempt_vat boolean NOT NULL,
    CONSTRAINT ckc_member_id_business CHECK (((member_id >= 10000) AND (member_id <= 99999))),
    CONSTRAINT ckc_shares_signed_business CHECK ((shares_signed >= 0)),
    CONSTRAINT ckt_business_partner CHECK ((((((member_since IS NULL) AND (member_until IS NULL)) OR ((member_since IS NOT NULL) AND (member_until IS NULL))) OR (((member_since IS NOT NULL) AND (member_until IS NOT NULL)) AND (member_since < member_until))) AND ((((member_code)::text ~~ 'hsh00-%'::text) AND (member_since IS NOT NULL)) OR (((member_code)::text !~~ 'hsh00-%'::text) AND (member_since IS NULL)))))
    CONSTRAINT ckt_business_partner CHECK ( ( ((member_since IS NULL) AND (member_until IS NULL)) OR ((member_since IS NOT NULL) AND (member_until IS NULL)) OR ((member_since IS NOT NULL) AND (member_until IS NOT NULL) AND (member_since < member_until)) ) AND ((member_code)::text ~~ 'hsh00-%'::text)),
    UNIQUE (bp_id)
);
@@ -152,16 +116,34 @@
-- Name: component; Type: TABLE; Schema: public; Owner: -; Tablespace: 
--
CREATE SEQUENCE component_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
CREATE TABLE component (
   component_id integer DEFAULT nextval(('"component_id_seq"'::text)::regclass) NOT NULL,
    basepacket_id integer NOT NULL,
    basecomponent_id integer NOT NULL,
    article_number integer NOT NULL,
    min_quantity integer NOT NULL,
    max_quantity integer NOT NULL,
    default_quantity integer NOT NULL,
    increment_quantity integer NOT NULL,
    include_quantity integer NOT NULL,
    admin_only boolean NOT NULL,
    CONSTRAINT ckt_component CHECK (((((((((min_quantity <= max_quantity) AND (min_quantity <= default_quantity)) AND (default_quantity <= max_quantity)) AND (min_quantity <= include_quantity)) AND (include_quantity <= max_quantity)) AND (mod(max_quantity, increment_quantity) = 0)) AND (mod(default_quantity, increment_quantity) = 0)) AND (mod(include_quantity, increment_quantity) = 0)))
    CONSTRAINT ckt_component CHECK (
       (0 <= min_quantity) AND
       (min_quantity <= default_quantity) AND
       (default_quantity <= max_quantity) AND
       (include_quantity <= default_quantity) AND
       (0 <= include_quantity) AND
       (mod(min_quantity, increment_quantity) = 0) AND
       (mod(max_quantity, increment_quantity) = 0) AND
       (mod(default_quantity, increment_quantity) = 0) AND
       (mod(include_quantity, increment_quantity) = 0)
    )
);
@@ -203,6 +185,38 @@
--
-- Name: price_list
--
CREATE TABLE price_list (
    id serial primary key,
    name character varying(20)
);
--
-- Name: customer_price_list_mapping
--
CREATE TABLE customer_price_list_mapping (
    customer integer references business_partner(bp_id),
    price_list integer references price_list(id)
);
--
-- Name: price
--
CREATE TABLE price (
    id serial primary key,
    article_number integer NOT NULL,
    price decimal(10, 2) NOT NULL,
    vat decimal(4,2) NOT NULL,
    price_list integer references price_list(id)
);
--
-- Name: database_database_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
@@ -212,8 +226,6 @@
    NO MINVALUE
    CACHE 1;
SET default_with_oids = false;
--
-- Name: database; Type: TABLE; Schema: public; Owner: -; Tablespace: 
@@ -269,17 +281,10 @@
CREATE TABLE domain (
    domain_name character varying(256) NOT NULL,
    domain_status character varying(12) NOT NULL,
    domain_status_changed date NOT NULL,
    domain_filed date,
    domain_since date,
    domain_until date,
    domain_dns_master character varying(64),
    domain_id integer DEFAULT nextval('domain_domain_id_seq'::regclass) NOT NULL,
    domain_owner integer NOT NULL,
    domain_reminder date,
    domain_free boolean DEFAULT false NOT NULL,
    domain_template character varying(32)
    domain_owner integer NOT NULL
);
@@ -330,8 +335,6 @@
);
SET default_with_oids = true;
--
-- Name: hive; Type: TABLE; Schema: public; Owner: -; Tablespace: 
--
@@ -379,52 +382,7 @@
--
-- Name: member_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE member_id_seq
    INCREMENT BY 1
    MAXVALUE 99999
    MINVALUE 10200
    CACHE 1;
--
-- Name: packet; Type: TABLE; Schema: public; Owner: -; Tablespace: 
--
CREATE TABLE packet (
    packet_id integer DEFAULT nextval(('"packet_packet_id_seq"'::text)::regclass) NOT NULL,
    packet_name character varying(5) NOT NULL,
    bp_id integer NOT NULL,
    hive_id integer NOT NULL,
    created date NOT NULL,
    cancelled date,
    order_number character varying(20),
    webserver_group character varying(10),
    cur_inet_addr_id integer,
    old_inet_addr_id integer,
    CONSTRAINT ckt_packet CHECK (((cancelled IS NULL) OR (cancelled > created)))
);
--
-- Name: packet_component; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE packet_component (
    basepacket_id integer NOT NULL,
    basecomponent_id integer NOT NULL,
    packet_id integer NOT NULL,
    quantity integer NOT NULL,
    created date,
    cancelled date,
    CONSTRAINT ckt_packet_component CHECK (((cancelled IS NULL) OR (cancelled > created)))
);
--
-- Name: packet_packet_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE packet_packet_id_seq
@@ -433,8 +391,44 @@
    NO MINVALUE
    CACHE 1;
CREATE TABLE packet (
    packet_id integer DEFAULT nextval(('"packet_packet_id_seq"'::text)::regclass) NOT NULL,
    basepacket_id integer NOT NULL,
    packet_name character varying(5) NOT NULL,
    bp_id integer NOT NULL,
    hive_id integer NOT NULL,
    created date NOT NULL,
    cancelled date,
    free boolean NOT NULL,
    cur_inet_addr_id integer,
    old_inet_addr_id integer,
    CONSTRAINT ckt_packet CHECK (((cancelled IS NULL) OR (cancelled > created)))
);
SET default_with_oids = false;
ALTER TABLE ONLY packet
    ADD CONSTRAINT base_packet_ref FOREIGN KEY (basepacket_id) REFERENCES basepacket(basepacket_id);
--
-- Name: packet_component; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE SEQUENCE packet_component_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
CREATE TABLE packet_component (
   packet_component_id integer DEFAULT nextval(('"packet_component_id_seq"'::text)::regclass) NOT NULL,
    basecomponent_id integer NOT NULL,
    packet_id integer NOT NULL,
    quantity integer NOT NULL,
    created date,
    cancelled date,
    CONSTRAINT ckt_packet_component CHECK (((cancelled IS NULL) OR (cancelled > created)))
);
--
-- Name: queue_task; Type: TABLE; Schema: public; Owner: -; Tablespace: 
@@ -542,22 +536,6 @@
--
-- Name: pk_basepacket; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY basepacket
    ADD CONSTRAINT pk_basepacket PRIMARY KEY (basepacket_id);
--
-- Name: pk_billdata; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY billdata
    ADD CONSTRAINT pk_billdata PRIMARY KEY (billdata_id);
--
-- Name: pk_business_partner; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
--
@@ -570,7 +548,7 @@
--
ALTER TABLE ONLY component
    ADD CONSTRAINT pk_component PRIMARY KEY (basepacket_id, basecomponent_id);
    ADD CONSTRAINT pk_component PRIMARY KEY (component_id);
--
@@ -626,7 +604,7 @@
--
ALTER TABLE ONLY packet_component
    ADD CONSTRAINT pk_packet_component PRIMARY KEY (basepacket_id, basecomponent_id, packet_id);
    ADD CONSTRAINT pk_packet_component PRIMARY KEY (packet_component_id);
--
@@ -664,13 +642,6 @@
--
CREATE UNIQUE INDEX basepacket_in_1 ON basepacket USING btree (basepacket_code);
--
-- Name: billdata_in_1; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE UNIQUE INDEX billdata_in_1 ON billdata USING btree (bp_id);
--
@@ -843,22 +814,6 @@
--
-- Name: fk_billdata_reference_business; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY billdata
    ADD CONSTRAINT fk_billdata_reference_business FOREIGN KEY (bp_id) REFERENCES business_partner(bp_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
--
-- Name: fk_comp_bcomp; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY packet_component
    ADD CONSTRAINT fk_comp_bcomp FOREIGN KEY (basepacket_id, basecomponent_id) REFERENCES component(basepacket_id, basecomponent_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
--
-- Name: fk_comp_pack; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@@ -929,11 +884,39 @@
ALTER TABLE ONLY queue_task
    ADD CONSTRAINT queue_task_user_id_fkey FOREIGN KEY (user_id) REFERENCES unixuser(unixuser_id) ON DELETE SET NULL;
--
-- Name: queue_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
-- domain options
--
ALTER TABLE ONLY queue
    ADD CONSTRAINT queue_user_id_fkey FOREIGN KEY (user_id) REFERENCES unixuser(unixuser_id) DEFERRABLE;
CREATE SEQUENCE domain_option_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
CREATE TABLE domain_option (
    domain_option_id integer DEFAULT nextval(('"domain_option_id_seq"'::text)::regclass) NOT NULL,
    domain_option_name character varying(50) NOT NULL
);
ALTER TABLE ONLY domain_option
    ADD CONSTRAINT pk_domain_option PRIMARY KEY (domain_option_id);
CREATE UNIQUE INDEX domain_option_name_idx ON domain_option USING btree ( domain_option_name );
CREATE TABLE domain__domain_option (
   domain_option_id integer NOT NULL,
   domain_id integer NOT NULL
);
ALTER TABLE ONLY domain__domain_option
    ADD CONSTRAINT pk_domain__domain_option PRIMARY KEY (domain_option_id, domain_id);
ALTER TABLE ONLY domain__domain_option
    ADD CONSTRAINT domain_option_id_fkey FOREIGN KEY (domain_option_id)
       REFERENCES domain_option(domain_option_id) DEFERRABLE;
ALTER TABLE ONLY domain__domain_option
    ADD CONSTRAINT domain_id_fkey FOREIGN KEY (domain_id)
       REFERENCES domain(domain_id) DEFERRABLE;