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 );