astrodatagui: StarsDB: improve database structure
This commit is contained in:
@@ -21,6 +21,7 @@ class StarDB():
|
|||||||
instance = StarDB(dbName)
|
instance = StarDB(dbName)
|
||||||
StarDB.__instances.append(instance)
|
StarDB.__instances.append(instance)
|
||||||
StarDB.__dbNames.append(dbName)
|
StarDB.__dbNames.append(dbName)
|
||||||
|
return instance
|
||||||
|
|
||||||
def __init__(self, dbName: str):
|
def __init__(self, dbName: str):
|
||||||
if(dbName in StarDB.__dbNames):
|
if(dbName in StarDB.__dbNames):
|
||||||
@@ -59,28 +60,19 @@ class StarDB():
|
|||||||
|
|
||||||
self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS sequenceSourceNames
|
self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS sequenceSourceNames
|
||||||
(
|
(
|
||||||
sequenceSourceNameID INTEGER NOT NULL,
|
sourceName TEXT,
|
||||||
name TEXT UNIQUE,
|
PRIMARY KEY (sourceName)
|
||||||
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)
|
|
||||||
);""")
|
);""")
|
||||||
|
|
||||||
self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS stars
|
self.dbCursor.execute("""CREATE TABLE IF NOT EXISTS stars
|
||||||
(
|
(
|
||||||
mainName TEXT NOT NULL,
|
mainName TEXT NOT NULL,
|
||||||
sequenceSourceNameID INTEGER NOT NULL,
|
sourceName TEXT NOT NULL,
|
||||||
sequencesID INTEGER NOT NULL,
|
sequence INTEGER NOT NULL,
|
||||||
filename TEXT,
|
filename TEXT NOT NULL,
|
||||||
PRIMARY KEY (mainName, sequenceSourceNameID, sequencesID),
|
PRIMARY KEY (mainName, sourceName, sequence),
|
||||||
FOREIGN KEY (mainName) REFERENCES starnames(mainName),
|
FOREIGN KEY (mainName) REFERENCES starnames(mainName),
|
||||||
FOREIGN KEY (sequenceSourceNameID) REFERENCES sequenceSourceNames(sequenceSourceNameID)
|
FOREIGN KEY (sourceName) REFERENCES sequenceSourceNames(sourceName)
|
||||||
FOREIGN KEY (sequencesID) REFERENCES sequences(sequencesID)
|
|
||||||
);""")
|
);""")
|
||||||
|
|
||||||
self.insertDefaultValues()
|
self.insertDefaultValues()
|
||||||
@@ -89,13 +81,13 @@ class StarDB():
|
|||||||
|
|
||||||
def insertDefaultValues(self):
|
def insertDefaultValues(self):
|
||||||
sources = ["TESS", "Kepler", "K2"]
|
sources = ["TESS", "Kepler", "K2"]
|
||||||
for i, s in enumerate(sources):
|
for s in sources:
|
||||||
self.dbCursor.execute(f"""INSERT OR IGNORE INTO
|
self.dbCursor.execute(f"""INSERT OR IGNORE INTO
|
||||||
sequenceSourceNames(sequenceSourceNameID, name)
|
sequenceSourceNames(sourceName)
|
||||||
VALUES({i}, \"{s}\")""")
|
VALUES(\"{s}\")""")
|
||||||
|
|
||||||
def insertStarAlternativeNames(self, mainName: str, altNames):
|
def insertStarAlternativeNames(self, mainName: str, altNames):
|
||||||
for an in altNames:
|
for an in altNames:
|
||||||
self.dbCursor.execute(f"""INSERT OR IGNORE INTO
|
self.dbCursor.execute(f"""INSERT OR IGNORE INTO
|
||||||
starnames(mainName, altName)
|
starnames(mainName, altName)
|
||||||
VALUES(\"{mainName}\", \"{an["ID"]}\")""")
|
VALUES(\"{mainName}\", \"{an["ID"]}\")""")
|
||||||
|
|||||||
Reference in New Issue
Block a user