astrodatagui: StarsDB: improve database structure

This commit is contained in:
2024-03-08 11:45:45 +01:00
parent 37b1887326
commit cdb0c61b1a
+11 -19
View File
@@ -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,10 +81,10 @@ 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: