Design(Hilfe) einer (SQLite) Datenbank
Verfasst: 29.04.2011 23:27
Moin Leute,
ich brächte mal ein paar Anregungen, vorzugsweise von erfahrenen DB Profis.
Es geht um das Design (also welche und wie viele Tabellen, welche Feldnamen in welcher Tabelle?) einer einfach Datenbankanwendung.
Also, ein Musikverein hat ein paar hundert Lieder. Gut, das kommt in eine Tabelle.
Nun hat der Musikverein Auftritte. Gut, dass kommt in die zweite Tabelle. Hier ist mir jedoch noch nicht ganz klar, welche Felder diese Tabelle haben sollte.
Und nun ist es ja so, dass bei einem Auftritt (kann ein Übungsabend, eine Probe, oder auch ein "echter" Auftritt sein) nur einige wenige der einstudierten Musikstücke / Lieder gespielt werden. Gut, also eine dritte Tabelle. Aber spätestens hier ist mir unklar, wie diese gestaltet sein sollte.
Hier mal ein Beispiel, vielleicht kann das ja mal der eine oder andere verbessern.
Danke.
__________________________________________________
Code-Tags hinzugefügt
29.04.2011
RSBasic
ich brächte mal ein paar Anregungen, vorzugsweise von erfahrenen DB Profis.
Es geht um das Design (also welche und wie viele Tabellen, welche Feldnamen in welcher Tabelle?) einer einfach Datenbankanwendung.
Also, ein Musikverein hat ein paar hundert Lieder. Gut, das kommt in eine Tabelle.
Nun hat der Musikverein Auftritte. Gut, dass kommt in die zweite Tabelle. Hier ist mir jedoch noch nicht ganz klar, welche Felder diese Tabelle haben sollte.
Und nun ist es ja so, dass bei einem Auftritt (kann ein Übungsabend, eine Probe, oder auch ein "echter" Auftritt sein) nur einige wenige der einstudierten Musikstücke / Lieder gespielt werden. Gut, also eine dritte Tabelle. Aber spätestens hier ist mir unklar, wie diese gestaltet sein sollte.
Hier mal ein Beispiel, vielleicht kann das ja mal der eine oder andere verbessern.
Danke.
Code: Alles auswählen
; BEGINN für Tabelle 1 (Musikstücke)
statement_create1 = "CREATE TABLE " + db_tablename1 + " (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"
statement_create1 + ",titel VARCHAR(50)" ; Feld 1, denn Feld 0 ist die ID
statement_create1 + ",musik VARCHAR(30)"
statement_create1 + ",bearbeitet VARCHAR(30)"
statement_create1 + ",genre VARCHAR(30)"
statement_create1 + ",takt VARCHAR(30)"
statement_create1 + ")"
; CREATE Table erste Datentabelle....
DatabaseUpdate(0, statement_create1) ; statement für CREATE TABLE 1
;Debug statement_create1
db_error_str = DatabaseError() ; letzten Fehler als Textstring speichern.
;---
;---
; CREATE Tabelle 2 (Auftritte)
statement_create2 = "CREATE TABLE " + db_tablename2 + " (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"
statement_create2 + ",ort VARCHAR(30)" ; Feld 1, denn Feld 0 ist die ID
statement_create2 + ",platz CHAR(30)"
statement_create2 + ",tag CHAR(2)"
statement_create2 + ",monat CHAR(2)"
statement_create2 + ",jahr CHAR(4)"
statement_create2 + ",startzeit CHAR(5)"
statement_create2 + ",endzeit CHAR(5)"
statement_create2 + ",grund VARCHAR(30)"
statement_create2 + ")"
; CREATE Table zweite Datentabelle...
DatabaseUpdate(0, statement_create2) ; statement für CREATE TABLE 2
db_error_str = DatabaseError() ; letzten Fehler als Textstring speichern.
;--
;--
; CREATE Tabelle 3 (gespielte Stücke)
statement_create3 = "CREATE TABLE " + db_tablename3 + " (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"
statement_create3 + ",titel CHAR(2)" ; Feld 1, denn Feld 0 ist die ID
statement_create3 + ")"
; CREATE Table zweite Datentabelle...
DatabaseUpdate(0, statement_create3) ; statement für CREATE TABLE 3
db_error_str = DatabaseError() ; letzten Fehler als Textstring speichern.
Code-Tags hinzugefügt
29.04.2011
RSBasic