def createDBTables(self):
try:
self.c.execute('''CREATE TABLE USER_DETAILS(
USER_ID INT PRIMARY KEY NOT NULL UNIQUE,
FNAME TEXT,
LNAME TEXT,
EMAIL BLOB UNIQUE)''')
self.c.execute('''CREATE TABLE LOGIN_DETAILS(
USER_ID INT PRIMARY KEY ,
USERNAME TEXT NOT NULL UNIQUE,
PASSWORD BLOB NOT NULL UNIQUE,
FOREIGN KEY(USER_ID) REFERENCES USER_DETAILS(USER_ID) )''')
self.c.execute('''CREATE TABLE USER_GROUPS(
GRP_ID INT PRIMARY KEY NOT NULL UNIQUE,
GRP_NAME TEXT UNIQUE)''')
self.c.execute('''CREATE TABLE REASON_CODES(
CODE_TYPE VARCHAR(15) UNIQUE NOT NULL,
CODE_VALUE VARCHAR(20) UNIQUE NOT NULL)''')
self.c.execute('''CREATE TABLE USR_BELONGS_GRP(
GRP_ID INT,
USER_ID INT,
FOREIGN KEY(GRP_ID) REFERENCES USER_GROUPS(GRP_ID),
FOREIGN KEY(USER_ID) REFERENCES USER_DETAILS(USER_ID))''')
self.c.execute('''CREATE TABLE USR_TRANSCATIONS(
USER_ID INT,
START_DATE DATETIME DEFAULT CURRENT_TIMESTAMP,
END_DATE DATETIME DEFAULT CURRENT_TIMESTAMP,
REASON VARCHAR(20),
FOREIGN KEY(REASON) REFERENCES REASON_CODES(CODE_VALUE),
FOREIGN KEY(USER_ID) REFERENCES USER_DETAILS(USER_ID))''')
self.conn.commit()
except sqlite3.ProgrammingError as e:
print (e)