From cdb0c61b1a76069411c98a416380569cd016ad4e Mon Sep 17 00:00:00 2001 From: SGCMarkus Date: Fri, 8 Mar 2024 11:45:45 +0100 Subject: [PATCH] astrodatagui: StarsDB: improve database structure --- main/astrodatagui/db/StarsDB.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/main/astrodatagui/db/StarsDB.py b/main/astrodatagui/db/StarsDB.py index 2fddb65..b178cd6 100644 --- a/main/astrodatagui/db/StarsDB.py +++ b/main/astrodatagui/db/StarsDB.py @@ -21,6 +21,7 @@ class StarDB(): instance = StarDB(dbName) StarDB.__instances.append(instance) StarDB.__dbNames.append(dbName) + return instance def __init__(self, dbName: str): if(dbName in StarDB.__dbNames): @@ -59,28 +60,19 @@ class StarDB(): self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS sequenceSourceNames ( - sequenceSourceNameID INTEGER NOT NULL, - name TEXT UNIQUE, - PRIMARY KEY (sequenceSourceNameID, name) - );""") - - self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS sequences - ( - sequencesID INTEGER NOT NULL, - sequence INTEGER NOT NULL, - PRIMARY KEY (sequencesID, sequence) + sourceName TEXT, + PRIMARY KEY (sourceName) );""") self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS stars ( mainName TEXT NOT NULL, - sequenceSourceNameID INTEGER NOT NULL, - sequencesID INTEGER NOT NULL, - filename TEXT, - PRIMARY KEY (mainName, sequenceSourceNameID, sequencesID), + sourceName TEXT NOT NULL, + sequence INTEGER NOT NULL, + filename TEXT NOT NULL, + PRIMARY KEY (mainName, sourceName, sequence), FOREIGN KEY (mainName) REFERENCES starnames(mainName), - FOREIGN KEY (sequenceSourceNameID) REFERENCES sequenceSourceNames(sequenceSourceNameID) - FOREIGN KEY (sequencesID) REFERENCES sequences(sequencesID) + FOREIGN KEY (sourceName) REFERENCES sequenceSourceNames(sourceName) );""") self.insertDefaultValues() @@ -89,13 +81,13 @@ class StarDB(): def insertDefaultValues(self): sources = ["TESS", "Kepler", "K2"] - for i, s in enumerate(sources): + for s in sources: self.dbCursor.execute(f"""INSERT OR IGNORE INTO - sequenceSourceNames(sequenceSourceNameID, name) - VALUES({i}, \"{s}\")""") + sequenceSourceNames(sourceName) + VALUES(\"{s}\")""") def insertStarAlternativeNames(self, mainName: str, altNames): for an in altNames: self.dbCursor.execute(f"""INSERT OR IGNORE INTO starnames(mainName, altName) - VALUES(\"{mainName}\", \"{an["ID"]}\")""") \ No newline at end of file + VALUES(\"{mainName}\", \"{an["ID"]}\")""")