-- -------------------------------------------------------------
-- adressbuch.sql
-- (c) 2007 Severin Kacianka <severin.kacianka@aon.at>
-- Tabellen um die Adressen von Personen zu speichern und
-- zu taggen
-- -------------------------------------------------------------
-- DROP evtl. exestierende Tabellen
DROP TABLE adressen_tagged;
DROP TABLE adressen_tags;
DROP TABLE adressen;
-- -------------------------------------------------------------
-- Speichert die Daten der Personen
-- -------------------------------------------------------------
CREATE TABLE `adressen` (
`AID` INT( 11 ) AUTO_INCREMENT NOT NULL,
`ATITEL` VARCHAR( 50 ) NOT NULL,
`AVORNAME` VARCHAR(200) NOT NULL,
`ANACHNAME` VARCHAR(200) NOT NULL,
`APLZ` VARCHAR(10) NOT NULL,
`AORT` VARCHAR(50) NOT NULL,
`ASTRASSE` VARCHAR(100) NOT NULL,
`AEMAIL` VARCHAR(100) NOT NULL,
`ATELEFON` VARCHAR(50) NOT NULL,
-- 1 wenn Adresse zu einer Person geh�rt, 0 wenn sie zu einer Institution geh�rt
`APERSON` TINYINT(1) NOT NULL DEFAULT 1,
PRIMARY KEY ( `AID` )
)
CHARACTER SET = 'utf8' COLLATE 'utf8_unicode_ci'
ENGINE = innodb;
-- -------------------------------------------------------------
-- Speichert alle Tags
-- Das ist eine Rekursive Tabelle. Die hoechste Ebene hat
-- als Parent NULL
-- -------------------------------------------------------------
CREATE TABLE `adressen_tags` (
`TID` INT( 11 ) AUTO_INCREMENT NOT NULL,
`TTAG` VARCHAR(100) NOT NULL,
`TPARENT` INT (11) NULL,
PRIMARY KEY ( `TID` ),
UNIQUE (`TTAG`),
CONSTRAINT `CHILD_BRAUCHT_PARENT`
FOREIGN KEY (`TPARENT`) REFERENCES adressen_tags(`TID`)
ON DELETE RESTRICT ON UPDATE CASCADE
)
CHARACTER SET = 'utf8' COLLATE 'utf8_unicode_ci'
ENGINE = innodb;
-- -------------------------------------------------------------
-- zuordnung von Tags zu adressen
-- -------------------------------------------------------------
CREATE TABLE `adressen_tagged` (
`FK_AID` INT(11) NOT NULL,
`FK_TID` INT(11) NOT NULL,
PRIMARY KEY(`FK_AID`,`FK_TID`),
CONSTRAINT `AT_BRAUCHT_ADRESSE`
FOREIGN KEY (`FK_AID`) REFERENCES adressen(`AID`)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `AT_BRAUCHT_TAG`
FOREIGN KEY (`FK_TID`) REFERENCES adressen_tags(`TID`)
ON DELETE RESTRICT ON UPDATE CASCADE
)
CHARACTER SET = 'utf8' COLLATE 'utf8_unicode_ci'
ENGINE = innodb;
-- Notwendige Startkategorien
INSERT INTO `adressen_tags` (`TTAG`,`TPARENT`) VALUES
('Alle Bundeslaender',NULL);
INSERT INTO `adressen_tags` (`TTAG`,`TPARENT`) VALUES
('Ausland',1),('Burgenland',1),('Kaernten',1),('Niederoesterreich',1),
('Oberoesterreich',1),('Salzburg',1),('Steiermark',1),
('Tirol',1),('Vorarlberg',1),('Wien',1);
INSERT INTO `adressen_tags` (`TTAG`) VALUES ('Volksschule'),('Sekundarstufe');
INSERT INTO `adressen` (`AID`, `ATITEL`, `AVORNAME`, `ANACHNAME`, `APLZ`, `AORT`, `ASTRASSE`, `AEMAIL`, `ATELEFON`, `APERSON`) VALUES
(1, '', 'test1', 'test1', '', '', '', '', '', 1),
(2, '', 'test2', 'test2', '', '', '', '', '', 1),
(3, '', 'test3', 'test3', '', '', '', '', '', 1),
(4, '', 'test4', 'test4', '', '', '', '', '', 1);
INSERT INTO `adressen_tagged` (`FK_AID`, `FK_TID`) VALUES
(1, 2),
(3, 2),
(2, 3),
(4, 4),
(2, 13);