From: timkoma Date: Tue, 26 Jan 2010 14:39:06 +0000 (+0000) Subject: unique constraints added into sql X-Git-Tag: 0.5.0~186 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/89ff5f21e128f28ae111b5b4f985502903d0ac3c?hp=a226ba2f17a43005ab4fb5b080b12bff2c8cc3fa unique constraints added into sql --- diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp index 476e812..faed167 100644 --- a/src/sql/sqlengine.cpp +++ b/src/sql/sqlengine.cpp @@ -230,73 +230,76 @@ bool SqlEngine::createTables(QSqlDatabase &aDatabase) { QSqlQuery query(aDatabase); - query.exec("CREATE TABLE CONFERENCE ( \ - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ - title VARCHAR UNIQUE NOT NULL , \ - subtitle VARCHAR, \ - venue VARCHAR, \ - city VARCHAR NOT NULL , \ - start INTEGER NOT NULL , \ - end INTEGER NOT NULL , \ - days INTEGER, \ - day_change INTEGER, \ - timeslot_duration INTEGER)"); - - query.exec("CREATE TABLE TRACK ( \ - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ - name VARCHAR UNIQUE NOT NULL )"); - - query.exec("CREATE TABLE ROOM ( \ - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \ - name VARCHAR UNIQUE NOT NULL , \ - picture VARCHAR NOT NULL)"); - - query.exec("CREATE TABLE PERSON ( \ - id INTEGER PRIMARY KEY NOT NULL , \ - name VARCHAR UNIQUE NOT NULL)"); - - query.exec("CREATE TABLE EVENT ( \ - xid_conference INTEGER NOT NULL, \ - id INTEGER NOT NULL , \ - start INTEGER NOT NULL , \ - duration INTEGER NOT NULL , \ - xid_track INTEGER NOT NULL REFERENCES TRACK(id), \ - type VARCHAR, \ - language VARCHAR, \ - tag VARCHAR,title VARCHAR NOT NULL , \ - subtitle VARCHAR, \ - abstract VARCHAR, \ - description VARCHAR, \ - favourite INTEGER DEFAULT 0, \ - alarm INTEGER DEFAULT 0, \ - PRIMARY KEY (xid_conference,id), \ - FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), \ - FOREIGN KEY(xid_track) REFERENCES TRACK(id))"); - - query.exec("CREATE TABLE EVENT_PERSON ( \ - xid_conference INTEGER NOT NULL , \ - xid_event INTEGER NOT NULL , \ - xid_person INTEGER NOT NULL, \ - FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), \ - FOREIGN KEY(xid_event) REFERENCES EVENT(id), \ - FOREIGN KEY(xid_person) REFERENCES PERSON(id))"); - - query.exec("CREATE TABLE EVENT_ROOM ( \ - xid_conference INTEGER NOT NULL , \ - xid_event INTEGER NOT NULL , \ - xid_room INTEGER NOT NULL, \ - FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), \ - FOREIGN KEY(xid_event) REFERENCES EVENT(id), \ - FOREIGN KEY(xid_room) REFERENCES ROOM(id))"); - - query.exec("CREATE TABLE LINK ( \ - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, \ - xid_conference INTEGER NOT NULL, \ - xid_event INTEGER NOT NULL, \ - name VARCHAR, \ - url VARCHAR NOT NULL, \ - FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), \ - FOREIGN KEY(xid_event) REFERENCES EVENT(id)"); + query.exec("CREATE TABLE CONFERENCE ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "title VARCHAR UNIQUE NOT NULL, " + "subtitle VARCHAR, " + "venue VARCHAR, " + "city VARCHAR NOT NULL, " + "start INTEGER NOT NULL, " + "end INTEGER NOT NULL, " + "days INTEGER, " + "day_change INTEGER, " + "timeslot_duration INTEGER);"); + + query.exec("CREATE TABLE TRACK ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "name VARCHAR UNIQUE NOT NULL );"); + + query.exec("CREATE TABLE ROOM ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "name VARCHAR UNIQUE NOT NULL, " + "picture VARCHAR NOT NULL);"); + + query.exec("CREATE TABLE PERSON ( " + "id INTEGER PRIMARY KEY NOT NULL, " + "name VARCHAR UNIQUE NOT NULL);"); + + query.exec("CREATE TABLE EVENT ( " + "xid_conference INTEGER NOT NULL, " + "id INTEGER NOT NULL, " + "start INTEGER NOT NULL, " + "duration INTEGER NOT NULL, " + "xid_track INTEGER NOT NULL REFERENCES TRACK(id), " + "type VARCHAR, " + "language VARCHAR, " + "tag VARCHAR,title VARCHAR NOT NULL, " + "subtitle VARCHAR, " + "abstract VARCHAR, " + "description VARCHAR, " + "favourite INTEGER DEFAULT 0, " + "alarm INTEGER DEFAULT 0, " + "PRIMARY KEY (xid_conference,id), " + "FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), " + "FOREIGN KEY(xid_track) REFERENCES TRACK(id));"); + + query.exec("CREATE TABLE EVENT_PERSON ( " + "xid_conference INTEGER NOT NULL, " + "xid_event INTEGER NOT NULL, " + "xid_person INTEGER NOT NULL, " + "UNIQUE ( xid_conference, xid_event, xid_person ) ON CONFLICT IGNORE, " + "FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), " + "FOREIGN KEY(xid_event) REFERENCES EVENT(id), " + "FOREIGN KEY(xid_person) REFERENCES PERSON(id));"); + + query.exec("CREATE TABLE EVENT_ROOM ( " + "xid_conference INTEGER NOT NULL, " + "xid_event INTEGER NOT NULL, " + "xid_room INTEGER NOT NULL, " + "UNIQUE ( xid_conference, xid_event, xid_room ) ON CONFLICT IGNORE, " + "FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), " + "FOREIGN KEY(xid_event) REFERENCES EVENT(id), " + "FOREIGN KEY(xid_room) REFERENCES ROOM(id));"); + + query.exec("CREATE TABLE LINK ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + "xid_conference INTEGER NOT NULL, " + "xid_event INTEGER NOT NULL, " + "name VARCHAR, " + "url VARCHAR NOT NULL, " + "UNIQUE ( xid_conference, xid_event, url ) ON CONFLICT IGNORE, " + "FOREIGN KEY(xid_conference) REFERENCES CONFERENCE(id), " + "FOREIGN KEY(xid_event) REFERENCES EVENT(id));"); } else {