phpbar.de logo

Mailinglisten-Archive

INDEX, PRIMARY KEY + UNIQUE

INDEX, PRIMARY KEY + UNIQUE

mysql_(at)_lists.phpcenter.de mysql_(at)_lists.phpcenter.de
Mon, 25 Jun 2001 13:56:14 +0200 (MEST)


Hallo, Lars,

> Eins habe ich noch ganz und gar nicht kapiert und zwar was genau kann
> man mit INDEX, PRIMARY KEY, UNIQUE erreichen... und was hat welche
> auswirkungen...

Das sind Begriffe, die aus dem ANSI SQL stammen. Ein Index ist einfach
ausgedrückt ein Konstrukt, mit dem die Datenbank auf eine Tabelle zugreifen kann.
Das kann sie auch ohne, würde aber recht langsam gehen. Stell dir das
Frankfurter Telefonbuch vor, unsortiert. Du würdest auch recht lange brauchen, bis
du einen Eintrag findest. Der Computer kann schneller lesen, aber auch dort
wäre es unhandlich. Ein Index auf Nachname würde in dem Fall schneller gehen.
Der Computer sucht in seinem Index den Nachnamen, findet einen Verweis auf die
Position des Namens in der Tabelle und kann so schneller auf die Daten
zugreifen. Beim Schreiben hat er allerdings einen Performance-Verlust, weil er de
Index zusätzlich aktualisieren muß.

Ein Primary Key, Primärschlüssel, ist sozusagen ein Leitindex. Meistens
lengt man sich dafür einen künstlichen Schlüssel in der Tabelle an, der mit jedem
neuen Eintrag hochgezählt wird. Personalnummer, Inventurnummer oder sowas
sind meistens Primärschlüssel. 
Ein UNIQUE Index hilft, Dubletten in der Tabelle zu vermeiden. Wenn du etwa
einen unique Index auf (Vorname, Nachname) legst, kannst du in deiner Tabelle
nicht zwei Leute gleichen Namens speichern. 

> Nochwas, was ist den nun besser, mehere Tabellen für eine Anwendung oder
> eine Tabelle? Zum Beispiel für eine FAQ Anwendung:

Das hängt immer von der Gestaltung der Aufgabe ab. Man nennt das
Normalisierung, und es nimmt an der Uni etwa 40 Wochenstunden Kurs in Anspruch :-)

Bei deinem Beispiel wären 2 Tabellen sinnvoll, eine, in welcher du die
Kathegorien ablegst, die zweite für Fragen und Antworten, wo du dich dann auf die
erste Tabelle beziehst. 
Würdest du es in nur einer Tabelle versuchen, hättest du redundante
(überflüssige) Informationen in deinen Zeilen, und wolltest du eine Kathegorie
ändern, müßtest du zig Zeilen aktualisieren.

ciao!
Kai

-- 
GMX - Die Kommunikationsplattform im Internet.
http://www.gmx.net

--
GMX Tipp:

Machen Sie Ihr Hobby zu Geld bei unserem Partner 1&1!
http://profiseller.de/info/index.php3?ac=OM.PS.PS003K00596T0409a

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive