180 lines
6.0 KiB
Plaintext
180 lines
6.0 KiB
Plaintext
CREATE TABLE News (
|
|
NID INT NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (NID),
|
|
Content VARCHAR(255) NOT NULL,
|
|
Teaser VARCHAR(255) NOT NULL,
|
|
StartDate DATE NOT NULL,
|
|
EndDate DATE,
|
|
INDEX (Content,EndDate)
|
|
);
|
|
|
|
CREATE TABLE Events (
|
|
EID INT NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (EID),
|
|
ETitle VARCHAR(255) NOT NULL,
|
|
EDate VARCHAR(255) NOT NULL,
|
|
EUrl VARCHAR(255),
|
|
INDEX (ETitle,EUrl,EDate)
|
|
);
|
|
'''Changed Date to VARCHAR due to irregularities in time span'''
|
|
|
|
CREATE TABLE Organisation (
|
|
OID INT NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (OID),
|
|
OName VARCHAR(255) NOT NULL,
|
|
ODescription VARCHAR(255),
|
|
OUrl VARCHAR(255),
|
|
OContact INT,
|
|
INDEX (OName,ODescription,OUrl,OContact)
|
|
);
|
|
CREATE TABLE Location (
|
|
LID INT NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (LID),
|
|
LTitle VARCHAR(64),
|
|
LStreetNr VARCHAR(128),
|
|
LPostalCode1 VARCHAR(16),
|
|
LPostalCode2 VARCHAR(16),
|
|
LCity1 VARCHAR(32),
|
|
LCity2 VARCHAR(32),
|
|
POBox VARCHAR(16),
|
|
LCountry VARCHAR(64),
|
|
LLon VARCHAR(8),
|
|
LLat VARCHAR(8),
|
|
INDEX (LTitle,LStreetNr,LPostalCode1,LPostalCode2,LCity1,LCity2,LCountry)
|
|
);
|
|
CREATE TABLE Tag (
|
|
TID INT NOT NULL AUTO_INCREMENT,
|
|
TagName VARCHAR(64) NOT NULL,
|
|
TagDescription VARCHAR(255),
|
|
PRIMARY KEY (TID)
|
|
);
|
|
CREATE TABLE KnowHowBackground (
|
|
KNID INT NOT NULL AUTO_INCREMENT,
|
|
KNTitle VARCHAR(64) NOT NULL,
|
|
KNContent VARCHAR(255),
|
|
KNAbstract VARCHAR(255) NOT NULL,
|
|
KNUrl VARCHAR(255),
|
|
PRIMARY KEY (KNID)
|
|
);
|
|
CREATE TABLE EventsKategorie (
|
|
EKID INT NOT NULL AUTO_INCREMENT,
|
|
EKName VARCHAR(64) NOT NULL,
|
|
EKDescription VARCHAR(255),
|
|
PRIMARY KEY (EKID)
|
|
);
|
|
CREATE TABLE NewsKategorie (
|
|
NKID INT NOT NULL AUTO_INCREMENT,
|
|
NKName VARCHAR(64) NOT NULL,
|
|
NKDescription VARCHAR(255),
|
|
PRIMARY KEY (NKID)
|
|
);
|
|
CREATE TABLE ChannelKategorie (
|
|
CKID INT NOT NULL AUTO_INCREMENT,
|
|
CKName VARCHAR(64) NOT NULL,
|
|
CKDescription VARCHAR(255),
|
|
PRIMARY KEY (CKID)
|
|
);
|
|
CREATE TABLE News_NewsKategorie (
|
|
NNKID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NID INT NOT NULL,
|
|
FK_NKID INT NOT NULL,
|
|
PRIMARY KEY (NNKID),
|
|
CONSTRAINT FK_NID1 FOREIGN KEY (FK_NID) REFERENCES News(NID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT FK_NKID1 FOREIGN KEY (FK_NKID) REFERENCES NewsKategorie(NKID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE News_ChannelKategorie (
|
|
NCKID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NID INT NOT NULL,
|
|
FK_CKID INT NOT NULL,
|
|
PRIMARY KEY (NCKID),
|
|
FOREIGN KEY (FK_NID) REFERENCES News(NID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_CKID) REFERENCES ChannelKategorie(CKID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE News_Tag (
|
|
TNID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NID INT NOT NULL,
|
|
FK_TID INT NOT NULL,
|
|
PRIMARY KEY (TNID),
|
|
FOREIGN KEY (FK_NID) REFERENCES News(NID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_TID) REFERENCES Tag(TID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE News_Events (
|
|
NEID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NID INT NOT NULL,
|
|
FK_EID INT NOT NULL,
|
|
PRIMARY KEY (NEID),
|
|
FOREIGN KEY (FK_NID) REFERENCES News(NID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_EID) REFERENCES Events(EID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE News_Organisation (
|
|
NOID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (NOID),
|
|
FOREIGN KEY (FK_NID) REFERENCES News(NID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Organisation_NewsKategorie (
|
|
ONKID INT NOT NULL AUTO_INCREMENT,
|
|
FK_NKID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (ONKID),
|
|
FOREIGN KEY (FK_NKID) REFERENCES NewsKategorie(NKID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Organisation_Location (
|
|
OLID INT NOT NULL AUTO_INCREMENT,
|
|
FK_LID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (OLID),
|
|
FOREIGN KEY (FK_LID) REFERENCES Location(LID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Organisation_KnowHowBackground (
|
|
OKNID INT NOT NULL AUTO_INCREMENT,
|
|
FK_KNID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (OKNID),
|
|
FOREIGN KEY (FK_KNID) REFERENCES KnowHowBackground(KNID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Organisation_Tag (
|
|
OTID INT NOT NULL AUTO_INCREMENT,
|
|
FK_TID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (OTID),
|
|
FOREIGN KEY (FK_TID) REFERENCES Tag(TID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Organisation_Events (
|
|
OEID INT NOT NULL AUTO_INCREMENT,
|
|
FK_EID INT NOT NULL,
|
|
FK_OID INT NOT NULL,
|
|
PRIMARY KEY (OEID),
|
|
FOREIGN KEY (FK_EID) REFERENCES Events(EID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_OID) REFERENCES Organisation(OID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Events_Tag (
|
|
ETID INT NOT NULL AUTO_INCREMENT,
|
|
FK_TID INT NOT NULL,
|
|
FK_EID INT NOT NULL,
|
|
PRIMARY KEY (ETID),
|
|
FOREIGN KEY (FK_TID) REFERENCES Tag(TID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_EID) REFERENCES Events(EID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Events_Location (
|
|
ELID INT NOT NULL AUTO_INCREMENT,
|
|
FK_EID INT NOT NULL,
|
|
FK_LID INT NOT NULL,
|
|
PRIMARY KEY (ELID),
|
|
FOREIGN KEY (FK_EID) REFERENCES Events(EID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_LID) REFERENCES Location(LID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
CREATE TABLE Events_EventsKategorie (
|
|
EEKID INT NOT NULL AUTO_INCREMENT,
|
|
FK_EID INT NOT NULL,
|
|
FK_EKID INT NOT NULL,
|
|
PRIMARY KEY (EEKID),
|
|
FOREIGN KEY (FK_EID) REFERENCES Events(EID) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
FOREIGN KEY (FK_EKID) REFERENCES EventsKategorie(EKID) ON DELETE CASCADE ON UPDATE CASCADE
|
|
); |