mysql script functional

This commit is contained in:
Al-P 2019-08-01 12:00:11 +02:00
parent 4216d85648
commit 1493425938
2 changed files with 161 additions and 131 deletions

View File

@ -1,4 +1,5 @@
#Entities and IDs are listed here
# source to simplifying work: https://wtools.io/generate-sql-create-table
News(NID,)
Event(EID,)
Organisation(OID)

View File

@ -1,148 +1,177 @@
#basiccharts
CREATE TABLE `News` (
`NID` INT NOT NULL AUTO_INCREMENT,
`Content` VARCHAR CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
`Teaser` VARCHAR CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
`StartDate` DATE NOT NULL,
`EndDate` DATE,
FULLTEXT `Index_Content` (`Content`) USING BTREE,
KEY `Index_EndDate` (`EndDate`) USING BTREE,
PRIMARY KEY (`NID`)
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 `Event` (
`EID` INT NOT NULL AUTO_INCREMENT,
`ETitle` VARCHAR NOT NULL,
`EDate` DATE NOT NULL,
`EUrl` VARCHAR,
FULLTEXT `Index_ETitle` (`ETitle`,`EUrl`) USING BTREE,
KEY `Index_EDate` (`EDate`) USING BTREE,
PRIMARY KEY (`EID`)
CREATE TABLE Events (
EID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (EID),
ETitle VARCHAR(255) NOT NULL,
EDate DATE NOT NULL,
EUrl VARCHAR(255),
INDEX (ETitle,EUrl,EDate)
);
CREATE TABLE `Organisation` (
`OID` INT NOT NULL AUTO_INCREMENT,
`OName` VARCHAR NOT NULL,
`ODescription` VARCHAR,
`OUrl` VARCHAR,
`OContact` INT,
KEY `Organisation` (`OName`,`ODescription`,`OUrl`,`OContact`) USING BTREE,
PRIMARY KEY (`OID`)
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,
`LTitle` VARCHAR,
`LStreetNr` VARCHAR,
`LPostalCode1` VARCHAR,
`LCity1` VARCHAR,
`POBox` VARCHAR,
`LPostalCode2` VARCHAR,
`LCity2` VARCHAR,
`LCountry` VARCHAR,
`LLon` VARCHAR,
`LLat` VARCHAR,
KEY `Index_Location` (`LTitle`,`LStreetNr`,`LPostalCode`,`LCity`,`LCountry`) USING BTREE,
PRIMARY KEY (`LID`)
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 `Know_How_Background` (
`KNID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`KNID`)
CREATE TABLE Tag (
TID INT NOT NULL AUTO_INCREMENT,
TagName VARCHAR(64) NOT NULL,
TagDescription VARCHAR(255),
PRIMARY KEY (TID)
);
CREATE TABLE `Event_Kategorie` (
`EKID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`EKID`)
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 `Tag` (
`TID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`TID`)
CREATE TABLE EventsKategorie (
EKID INT NOT NULL AUTO_INCREMENT,
EKName VARCHAR(64) NOT NULL,
EKDescription VARCHAR(255),
PRIMARY KEY (EKID)
);
CREATE TABLE `News_Kategorie` (
`NKID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKID`)
CREATE TABLE NewsKategorie (
NKID INT NOT NULL AUTO_INCREMENT,
NKName VARCHAR(64) NOT NULL,
NKDescription VARCHAR(255),
PRIMARY KEY (NKID)
);
CREATE TABLE `Channel_Kategorie` (
`CKID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`CKID`)
CREATE TABLE ChannelKategorie (
CKID INT NOT NULL AUTO_INCREMENT,
CKName VARCHAR(64) NOT NULL,
CKDescription VARCHAR(255),
PRIMARY KEY (CKID)
);
#Relationcharts
CREATE TABLE `News-News_Kategorie` (
`NNKID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NNKID`)
FOREIGN KEY (`NID`) REFERENCES News(`NID`)
FOREIGN KEY (`NKID`) REFERENCES News_Kategorie(`NKID`)
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-Channel_Kategorie` (
`NCKID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NCKID`)
FOREIGN KEY (`NID`) REFERENCES News(`NID`)
FOREIGN KEY (`CKID`) REFERENCES Channel_Kategorie(`CKID`)
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,
PRIMARY KEY (`TNID`)
FOREIGN KEY (`NID`) REFERENCES News(`NID`)
FOREIGN KEY (`TID`) REFERENCES Tag(`TID`)
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_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (`NKID`) REFERENCES News_Kategorie(`NKID`)
FOREIGN KEY (`OID`) REFERENCES Organisation(`OID`)
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 `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (`NKID`) REFERENCES News_Kategorie(`NKID`)
FOREIGN KEY (`OID`) REFERENCES Organisation(`OID`)
);
CREATE TABLE `News-Event` (
`NEID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NEID`)
FOREIGN KEY (`NID`) REFERENCES News(`NID`)
FOREIGN KEY (`EID`) REFERENCES Event(`EID`)
);
CREATE TABLE `News-Organisation` (
`NOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NOID`)
FOREIGN KEY (`NID`) REFS News(`NID`)
FOREIGN KEY (`OID`) REFERENCES Organisation(`OID`)
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 `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (`NKID`) REFERENCES News_Kategorie(`NKID`)
FOREIGN KEY (`OID`) REFERENCES Organisation(`OID`)
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 `News_KategoCREATE TABLE `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (NKID) REFERENCES News_Kategorie(NKID)
FOREIGN KEY (OID) REFERENCES Organisation(OID)
);ganisation` (
`NKOID` INT NOT NULL CREATE TABLE `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (NKID) REFERENCES News_Kategorie(NKID)
FOREIGN KEY (OID) REFERENCES Organisation(OID)
)
PRIMARY KEY (`NKOID`)CREATE TABLE `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (NKID) REFERENCES News_Kategorie(NKID)
FOREIGN KEY (OID) REFERENCES Organisation(OID)
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
);
FOREIGN KEY (NKID) REFERENCES News_Kategorie(NKID)
FOREIGN KEY (OID) REFERENCES Organisation(OID)
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 `News_Kategorie-Organisation` (
`NKOID` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`NKOID`)
FOREIGN KEY (NKID) REFERENCES News_Kategorie(NKID)
FOREIGN KEY (OID) REFERENCES Organisation(OID)
);
Organisation-Location(OLID,OID,LID)
Organisation-Know_How_Background(OKNID,OID,KNID)
Event-Tag(ETID,TID,EID)
Event-Location(ELID,EID,TID)
Event-Event_Kategorie(EEKID,EID,EKID)
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
);