Einzelnen Beitrag anzeigen
  #3  
Alt 18.05.2006, 13:03:40
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
AW: ist das richtig ?

Hi,

zum Thema Primärschlüssel:
Ein Primärschlüssel ist ein über die Tabelle hinweg eineindeutiger Schlüssel. Dieser kann aus ein (z.B. eine ID) oder mehreren zusammengesetzten Spalten (z.B. Name + Vorname) bestehen.

Die maximale Zeichenzahl der einzelnen Spaltentypen hab' ich nicht im Kopf, glaub' Dir das aber mal. In jedem Fall hat diese auch etwas mit dem von einem Datensatz verbrauchten Speicherplatz (Plattenplatz) zu tun.

Bei einem VARCHAR Feld wird nur soviel Platz benötigt, wie für die im Datensatz enthaltenen Zeichen benötigen (+ 1 Byte). Sprich: Du definierst das Feld mit VARCHAR(254), fügst aber nur ein "a" ein. Platzbedarf: 2 Byte (hoffe, das stimmt jetzt) und nicht 254 Byte.
Bei TEXT entspricht der Speicherbedarf immer dem maximal zur Verfügung stehenden Speicherplatz für die Spalte. Sprich (Beispiel): Maximal 254 Zeichen erlaubt, 1 Zeichen eingefügt: Belegter Platz auf der Platte dennoch: 254 Byte.

Welcher Spaltentyp in welchen Fällen am sinnvollsten ist kommt immer darauf an, worauf man Wert legt.
Klar ist, daß die maximale Anzahl an Zeichen, die in ein Feld eingetragen werden müssen, auch in dieses hineinpassen.
Ansonsten haben Tabellen mit variabler Satzlänge (sprich: VARCHAR) einen (leichten) Performancenachteil gegenüber Tabellen mit einer festen Satzlänge (sprich: TEXT). Dies wird man aber erst bei stark beanspruchten Datenbanken bzw. Tabellen merken.
Ansonsten hab' ich mal gelesen, daß es sinnvoll ist, Spalten mit einer variablen Länge eher ans Ende der Tabelle zu legen und nicht in die Mitte. (sprich: INT - TEXT - VARCHAR und nicht INT - VARCHAR - TEXT) Warum weiß ich aber auch nicht mehr genau.

HTH,

Andy
Mit Zitat antworten