Hallöchen,
ich versuche gerade einen kleinen Shop zu programmieren. Zwei kleine Verständnisprobleme habe ich bei der Indizierung.
Die Benutzer sollen mit einer Kombination aus laufender Nummer und Jahr eine Kennung erhalten, damit man in jedem Jahr neu hochzählen kann. Also z.B. der 527 Benutzer dieses Jahres erhält die Nummer 52704, der 433 Benutzer nächsten Jahres die Nummer 43305. Wie trage ich das jetzt von der Suchgeschwindigkeit her in die Datenbank ein? Folgende Überlegungen:
1. Nummer wie im obigen Beispiel in eine Spalte. Indizierung als Primärschlüssel oder Unique? Und ist es günstiger die Jahreszahl rechts oder links anzuordnen?
2. Nummer in zwei Spalten. Über beide Spalten Primärschlüssel. Und wieder Jahreszahl in die erste oder zweite Spalte?
Das zweite Problem besteht bei den Kategorien. Sagen wir mal Hauptkategorie in Spalte C, Unterkategorie in Spalte D, Merkmal in Spalte E.
Alle drei Spalten werden als Index deklariert. Wenn ich es nun richtig kapiert habe, muss die WHERE-Abfrage immer von links erfolgen. Also:
SELECT lala WHERE irgentwas in Spalte C, irgentwas in Spalte D, irgentwas in Spalte E.
Wie ist es jetzt aber, wenn nur die Hauptkategorie gewählt wird + Merkmal, also:
SELECT ... WHERE irgentwas in Spalte C, irgentwas in Spalte E.
Klappt das auch?
Habe schon viele Buch- und Internetseiten hinter mir, ohne Erfolg. Wäre prima, wenn hier einer Rat weiss.
Schöne Grüße, Mike.
ich versuche gerade einen kleinen Shop zu programmieren. Zwei kleine Verständnisprobleme habe ich bei der Indizierung.
Die Benutzer sollen mit einer Kombination aus laufender Nummer und Jahr eine Kennung erhalten, damit man in jedem Jahr neu hochzählen kann. Also z.B. der 527 Benutzer dieses Jahres erhält die Nummer 52704, der 433 Benutzer nächsten Jahres die Nummer 43305. Wie trage ich das jetzt von der Suchgeschwindigkeit her in die Datenbank ein? Folgende Überlegungen:
1. Nummer wie im obigen Beispiel in eine Spalte. Indizierung als Primärschlüssel oder Unique? Und ist es günstiger die Jahreszahl rechts oder links anzuordnen?
2. Nummer in zwei Spalten. Über beide Spalten Primärschlüssel. Und wieder Jahreszahl in die erste oder zweite Spalte?
Das zweite Problem besteht bei den Kategorien. Sagen wir mal Hauptkategorie in Spalte C, Unterkategorie in Spalte D, Merkmal in Spalte E.
Alle drei Spalten werden als Index deklariert. Wenn ich es nun richtig kapiert habe, muss die WHERE-Abfrage immer von links erfolgen. Also:
SELECT lala WHERE irgentwas in Spalte C, irgentwas in Spalte D, irgentwas in Spalte E.
Wie ist es jetzt aber, wenn nur die Hauptkategorie gewählt wird + Merkmal, also:
SELECT ... WHERE irgentwas in Spalte C, irgentwas in Spalte E.
Klappt das auch?
Habe schon viele Buch- und Internetseiten hinter mir, ohne Erfolg. Wäre prima, wenn hier einer Rat weiss.
Schöne Grüße, Mike.
Kommentar