Extra Systems Domain Name Server
Структура базы данных
/* Table: DEFAULTS, Owner: SYSDBA */
CREATE TABLE DEFAULTS (PRIMARYSERVER VARCHAR(200),
RESPONSIBLEPERSON VARCHAR(200),
REFRESHTIME INTEGER,
RETRYTIME INTEGER,
EXPIRETIME INTEGER,
MINIMUMTTL INTEGER);
/* Table: HOSTS, Owner: SYSDBA */
CREATE TABLE HOSTS (HOSTID INTEGER NOT NULL,
ADDRESSH INTEGER,
ADDRESSL INTEGER,
TTL INTEGER,
ZONEID INTEGER,
HOSTNAME VARCHAR(200),
UNIQUE (HOSTID));
/* Table: MX, Owner: SYSDBA */
CREATE TABLE MX (MXID INTEGER NOT NULL,
ZONEID INTEGER,
ZONENAME VARCHAR(200),
SERVERNAME VARCHAR(200),
PREFERENCE INTEGER,
TTL INTEGER,
UNIQUE (MXID));
/* Table: NS, Owner: SYSDBA */
CREATE TABLE NS (NSID INTEGER NOT NULL,
ZONEID INTEGER,
ZONENAME VARCHAR(200),
SERVERNAME VARCHAR(200),
TTL INTEGER,
UNIQUE (NSID));
/* Table: PTR, Owner: SYSDBA */
CREATE TABLE PTR (PTRID INTEGER NOT NULL,
ZONEID INTEGER,
INPUTNAME VARCHAR(200),
OUTPUTNAME VARCHAR(200),
TTL INTEGER,
UNIQUE (PTRID));
/* Table: SOA, Owner: SYSDBA */
CREATE TABLE SOA (SOAID INTEGER NOT NULL,
PRIMARYSERVER VARCHAR(200),
RESPONSIBLEPERSON VARCHAR(200),
SERIALNUMBER INTEGER,
REFRESHTIME INTEGER,
RETRYTIME INTEGER,
EXPIRETIME INTEGER,
MINIMUMTTL INTEGER,
TTL INTEGER,
ZONEID INTEGER,
ZONENAME VARCHAR(200),
UNIQUE (SOAID));
/* Table: ZONES, Owner: SYSDBA */
CREATE TABLE ZONES (ZONEID INTEGER NOT NULL,
PARENTID INTEGER,
ZONENAME VARCHAR(192),
UNIQUE (ZONEID));
/* Index definitions for all user tables */
CREATE INDEX HOST_FIND ON HOSTS(HOSTNAME);
CREATE INDEX HOST_MAIN ON HOSTS(ZONEID);
CREATE INDEX MX_FIND ON MX(ZONENAME);
CREATE INDEX MX_MAIN ON MX(ZONEID);
CREATE INDEX NS_FIND ON NS(ZONENAME);
CREATE INDEX NS_MAIN ON NS(ZONEID);
CREATE INDEX PTR_FIND ON PTR(INPUTNAME);
CREATE INDEX PTR_MAIN ON PTR(ZONEID);
CREATE INDEX SOA_FIND ON SOA(ZONENAME);
CREATE INDEX SOA_MAIN ON SOA(ZONEID);
CREATE INDEX ZONES_MAIN ON ZONES(PARENTID, ZONENAME);
CREATE GENERATOR KEY_GEN;
SET TERM ^ ;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER SET_HOST_ID FOR HOSTS
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.HostID = GEN_ID(KEY_GEN, 1);END
^
CREATE TRIGGER SET_SOA_ID FOR SOA
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.SOAID = GEN_ID(KEY_GEN, 1);END
^
CREATE TRIGGER SET_ZONE_ID FOR ZONES
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.ZoneID = GEN_ID(KEY_GEN, 1);END
^
CREATE TRIGGER SET_NS_ID FOR NS
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.NSID = GEN_ID(KEY_GEN, 1);END
^
CREATE TRIGGER SET_PTR_ID FOR PTR
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.PTRID = GEN_ID(KEY_GEN, 1);END
^
CREATE TRIGGER SET_MX_ID FOR MX
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.MXID = GEN_ID(KEY_GEN, 1);END
^
COMMIT WORK ^
SET TERM ; ^
Extra Systems DNS Server