Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#17

Re: fehler beim aktualisieren

  Alt 11. Jan 2008, 14:47
Les dich mal in Datenbankdesign ein...

Jede Tabelle sollte einen eindeutigen Primärschlüssel haben. Dazu bieten sich z.B. Autoincrement Spalten an. Der Primärschlüssel sollte keine zusätzliche Information beinhalten. (Rechnungsnr wäre z.B. kein Kandidat für einen Primärschlüssel).
Der Primärschlüssel dient dazu, einen Datensatz eindeutig zu indentifizieren. Alle Datenbanken sind mengenbasiert, d.h. es gibt keine direkte Reihenfolge. Wenn du eine Kiste mit Legosteinen hast, steht jeder Legostein für einen Datensatz, mit gewissen Eigenschaften (Farbe, Grösse, Gewicht, usw). Wenn du aber jetzt 2 identische Legosteine in die Kiste schmeisst, sie gut mischst, wirst du sie nicht mehr unterscheiden können. Und wenn ich dich frage, hole bitte den einen roten raus, kannst du den nicht von dem anderem unterscheiden. Du hast also ein Problem, es sei denn du hast jeden Legostein vorher eindeutig gekennzeichnet (z.B. vor dem in die Kiste schmeissen fortlaufend numeriert). Wenn ich dich weiter frage: gib mir den Roten. Dann kannst du natürlich weiter mir nur die beiden roten liefern (z.B. N° 432 und 782). Wenn ich aber, bevor ich dich frage, mir selbst die Nummer merke, so werde ich meine Frage anders formulieren: Gib mir Stein Nr. 432. Und du wirst ihn finden.

Und genauso arbeiten Datenbanken.

Indizes dienen dazu, Dinge schneller zu finden. Wenn du 1000000 Legosteine in deiner Kiste hast, und darunter nur 10 rote, kommst du trotzdem nicht drum rum, alle Steine einzeln zu betrachten, und zu kucken, ob er rot ist. Wenn ja, nimm ihn raus. Das ist natürlich ein Haufen Arbeit, und kostet etlich Zeit. Indizes sind sozusagen eine Art vorsortierte Kiste. Und in dieser Sortierung werden die roten Steien alle beieinander liegen. Deine Suche wird dadurch erheblich schneller.... genauso bei Datenbanken.

Es gibt noch viele andere Dinge, die man beachten muss beim Datenbankdesign, aber wie gesagt.... Les dir erst mal ein paar tutorials durch, und stelle danach die konkreten Fragen dazu.

PS: Ich hätte Lehrer werden sollen. Also diese Legokistenvergleich gefällt mir immer besser
  Mit Zitat antworten Zitat