Seite 1 von 2

SQLITE Grundsatzfrage

Verfasst: 21.08.2012 10:25
von RAaBe
Hallo zusammen.

Ich möchte eine Datenbank mit SQLITE aufbauen, 1 Tabelle mit ca. 120 Spalten (Text und Zahlen) und vielleicht 1000-2000 Datensätzen.

Frage: Muss ich beim Anlegen für jede Spalte auch zwingend den Datentyp angeben?

Achja.. in der DB sollen nur Datensätze angelegt, gesucht und gelöscht werden, also keine komplizierten Abfragen oder sonstiges.


Reinhard

Re: SQLITE Grundsatzfrage

Verfasst: 21.08.2012 10:48
von Kiffi
RAaBe hat geschrieben:Frage: Muss ich beim Anlegen für jede Spalte auch zwingend den Datentyp angeben?
Nein, musst Du nicht

Create Table myTable (myField1, myField2, myField3, ...)

reicht völlig aus.

Grüße ... Kiffi

Re: SQLITE Grundsatzfrage

Verfasst: 21.08.2012 19:32
von RAaBe
Danke für deine schnelle Antwort.

Reinhard

Re: SQLITE Grundsatzfrage

Verfasst: 23.08.2012 07:43
von dige
120 Spalten? Eine Datenbank sollte aus mehreren Tabellen bestehen, mit möglichst
wenig Spalten - Stichwort: Normalisierung.

Wenn Du alles in einer Tabelle ablegst, werden die Daten stark redundant und
die Performance geht in die Knie.

Such mal im Netz nach SelfSQL...

Re: SQLITE Grundsatzfrage

Verfasst: 23.08.2012 21:49
von RAaBe
Hi, in den Spalten steht meistens nicht viel drin. Ein paar Zustandsabfragen und Messwerte. Leider muss ich die Daten nach 3 Monaten sowieso wieder löschen (Datenschutz).

Muss ich eigentlich eine ID-Spalte einfügen? Ich verstehe den Sinn von ID nicht so richtig.


Reinhard

Re: SQLITE Grundsatzfrage

Verfasst: 23.08.2012 22:48
von Kiffi
RAaBe hat geschrieben:Muss ich eigentlich eine ID-Spalte einfügen? Ich verstehe den Sinn von ID nicht so richtig.
ID (wenn mit dem Datentyp 'INTEGER PRIMARY KEY AUTOINCREMENT' versehen)
stattet jeden Datensatz mit einem eindeutigen Merkmal aus. Das spielt eine Rolle
bei Update oder Delete - Queries und bei Verknüpfungen von Tabellen.

Wenn Du in Deinen 120 Spalten bereits eine eindeutige Zeilenkennung hast,
dann brauchst Du nicht unbedingt eine ID hinzuzufügen.

Grüße ... Kiffi

Re: SQLITE Grundsatzfrage

Verfasst: 23.08.2012 22:51
von RAaBe
Danke dir, ich kann die ID ja mal in die erste Spalte einfügen.

Reinhard

Re: SQLITE Grundsatzfrage

Verfasst: 29.08.2012 21:34
von RAaBe
Hallo, das mit SQLITE klappt wunderbar. Das mit der ID macht auch sinn, tja man lernt ja nie aus.

Aber ich habe da noch eine Frage: es gibt ja den Befehl: VACUUM. der funktioniert soweit, aber hat der auch irgend welche Nachteile im alltäglichen Gebrauch der Datenbank?

MfG

Reinhard

Re: SQLITE Grundsatzfrage

Verfasst: 29.08.2012 21:41
von Kiffi
RAaBe hat geschrieben:es gibt ja den Befehl: VACUUM. der funktioniert soweit, aber hat der auch irgend welche Nachteile im alltäglichen Gebrauch der Datenbank?
ich benutze das selten bis gar nicht. Bläht sich denn
Deine DB so sehr auf, dass Du sie 'komprimieren' musst?

Ansonsten habe ich noch nichts nachteiliges bzgl. dieses
Befehls gelesen oder gehört. Der Vorgang dauert natürlich
(je nach Größe der DB) etwas. Das solltest Du (grade wenn
Du eine GUI hast) berücksichtigen.

Grüße ... Kiffi

Re: SQLITE Grundsatzfrage

Verfasst: 29.08.2012 21:59
von RAaBe
Hallo Kiffi, wird bei VACUUM die DB den komprimiert? Ich dachte die wird aufgeräumt, nachdem man Datensätze gelöscht hat, damit sie wieder kleiner wird.

MfG

Reinhard