192 lines
5.6 KiB
JavaScript
192 lines
5.6 KiB
JavaScript
// Todo Implement Database Connection
|
|
|
|
db.serialize(function() {
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS zutat" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS einheit" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS geraet" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS kategorie" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS wertungkategorie" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS schwierigkeit" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" schwierigkeit bigint NOT NULL REFERENCES schwierigkeit(id)," +
|
|
" name text NOT NULL," +
|
|
" portionen NUMERIC NOT NULL DEFAULT 4.0," +
|
|
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_dauer" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" dauer interval NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" sort INT NOT NULL DEFAULT 0," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_zutat" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" einheit bigint NOT NULL REFERENCES einheit(id)," +
|
|
" zutat bigint NOT NULL REFERENCES zutat(id)," +
|
|
" menge NUMERIC," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_geraet" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" einheit bigint NOT NULL REFERENCES einheit(id)," +
|
|
" geraet bigint NOT NULL REFERENCES geraet(id)," +
|
|
" menge NUMERIC," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_schritt" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" sort INT NOT NULL DEFAULT 0," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_kategorie" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" kategorie bigint NOT NULL REFERENCES kategorie(id)," +
|
|
" modifikator NUMERIC NOT NULL DEFAULT 1," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" name text NOT NULL," +
|
|
" email text NOT NULL," +
|
|
" kennwort text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rolle" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" schluessel text NOT NULL," +
|
|
" name text NOT NULL," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_rolle" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
|
" rolle bigint NOT NULL REFERENCES rolle(id)," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_favorit" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_wertung" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
|
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
|
" wertungkategorie bigint NOT NULL REFERENCES wertungkategorie(id)," +
|
|
" wert INTEGER NOT NULL DEFAULT 5," +
|
|
" beschreibung text" +
|
|
" );" +
|
|
|
|
);
|
|
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_kommentar" +
|
|
" (" +
|
|
" id bigserial PRIMARY KEY," +
|
|
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
|
" relation text NOT NULL," +
|
|
" relation_id bigint NOT NULL," +
|
|
" beschreibung text" +
|
|
);
|
|
|
|
db.run("CREATE UNIQUE INDEX idx_geraet_schluessel ON geraet (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_einheit_schluessel ON einheit (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_kategorie_schluessel ON kategorie (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_schwierigket_schluessel ON schwierigkeit (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_zutat_schluessel ON zutat (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_rezept_schluessel ON rezept (schluessel);");
|
|
db.run("CREATE UNIQUE INDEX idx_nutzer_email ON nutzer (email);");
|
|
db.run("CREATE UNIQUE INDEX idx_wertungkategorie_email ON wertungkategorie (schluessel);")"
|
|
|
|
|
|
);
|
|
};
|