PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Column als Primary Index?



gruber99
06.02.2006, 11:36
hallo,

brauche allgemeine hilfe bei datenbanken
und zwar wie entscheide ich welche column ich als index in einer Tabelle wählen soll?

der primary index muß ja nicht unique sein

bsp. ich habe eine tabelle mit den coulmns A,B,C,D,E (= Zahl),F
eindeutig wird eine row aber durch die column A,B,C,D
ist es in diesem fall sinnvoll alle columns A,B,C,D als primary index zu definieren ?
(die tabelle ist ziemlich groß - also um die 2 Millionen rows ...)

danke
hannes

lordlamer
06.02.2006, 11:42
hi

ein primärschlüssel setzt du auf eine eindeutige id. das heißt du hast in dieser spalte eindeutige namen/zahlen/bucstaben zum identifizieren einer zeile.

ein index solltest du auf die spalten setzen auf die viel gesucht wird mit where!

ein uniqu kannst du setzen wenn sich in der spalte nur eindeutige werte befinden.

mfg frank

gruber99
06.02.2006, 12:15
hi danke für die schnelle antwort,

in meinem fall habe ich in dieser tabelle keine eindeutige id (da es sich um eine aggregation handelt)
sondern nur wie oben beschrieben columns A,B,C,D,E,F ...

ExRevel
06.02.2006, 13:49
dann führst du ein feld ein das eindeutig ist, z.b. über autoincrement. Man sollte immer eine eindeutige id in seiner tabelle haben, das bekommt dann den primary key. die anderen musst du entscheiden, anhand der Kardinalität ob es sich lohnt sie mit einem index zu versehen. oft sind dazu tests nötig.

x-lette
23.04.2006, 18:52
dann führst du ein feld ein das eindeutig ist, z.b. über autoincrement. Man sollte immer eine eindeutige id in seiner tabelle haben, das bekommt dann den primary key.
Ja und Nein: Eine eindeutige ID in einer Tabelle zu haben ist sinnvoll bzw. notwendig. Aber diese muß nicht eine eigene Spalte sein. Als Primary Key kann genauso gut eine Kombination aus mehreren Spalten dienen, die in dieser Kombination natürlich über die Tabelle eindeutig sein muß. Das scheint ja in o.g Fall bei A,B,C,D, gegeben zu sein.
Also Primary Key = A, B, C, D (wrd automatisch als unique gesetzt)
Indices müssen allerdings mit Vorsicht gewählt sein. Aber dazu wurde bereits genug gesagt.