contraint - Effizienz

03/03/2010 - 15:48 von Nicole Wagner | Report spam
Hallo User,

gegeben ist eine Tabelle.

Ich brauche eine bestimmte Zahlenfolge, die sich UNBEDINGT um genau
eins erhöhen muss. Beginnen muss sie mit jeweils mit 1.

Diese Folge wird "haendisch" geschrieben bzw. nach oben verschoben,
d.h. Irrtum ist moeglich. Daher soll die Maschine die Eingabe
kontrollieren.


Wie mache ich das am besten?

Die Tabelle ist so aufgebaut:
ID, Gemeinsamkeit, aufsteigender Wert, FRAGEWERT_DIESES_POSTINGS.

z.B.
id1 aalen Anna 1
id2 aalen berta 2
id3 aalen conrad 3
id4 buchner Annabel 1
id5 buchner Maria 2
id6 zeppelin brutus 1
id7 zeppelin zarathustra 2
etc.

Es geht um die letzte Zahlenfolge:
Aalen Berta muss eine Zahl haben, die genau um 1 grosser ist als Aalen
Anna.

Wie wuerdet Ihr das am besten loesen?


Danke fuer Tipps!
Nicole
 

Lesen sie die antworten

#1 Stefan Graf
03/03/2010 - 19:30 | Warnen spam
gegeben ist eine Tabelle.

Ich brauche eine bestimmte Zahlenfolge, die sich UNBEDINGT um genau
eins erhöhen muss. Beginnen muss sie mit jeweils mit 1.

Diese Folge wird "haendisch" geschrieben bzw. nach oben verschoben,
d.h. Irrtum ist moeglich. Daher soll die Maschine die Eingabe
kontrollieren.


Wie mache ich das am besten?

Die Tabelle ist so aufgebaut:
ID, Gemeinsamkeit, aufsteigender Wert, FRAGEWERT_DIESES_POSTINGS.

z.B.
id1 aalen Anna 1
id2 aalen berta 2
id3 aalen conrad 3
id4 buchner Annabel 1
id5 buchner Maria 2
id6 zeppelin brutus 1
id7 zeppelin zarathustra 2
etc.

Es geht um die letzte Zahlenfolge:
Aalen Berta muss eine Zahl haben, die genau um 1 grosser ist als Aalen
Anna.

Wie wuerdet Ihr das am besten loesen?



Vor dem Insert mit max ("aufsteigender Wert") den aktuelle größten Wert auslesen und um 1 erhöhen. Als keine hàndische Eingabe ;-)
Als Absicherung könnte man noch einen Unique-Index ("Gemeinsamkeit","aufsteigender Wert") definieren. Der würde dann auch noch das
max("aufsteigender Wert") unterstützen.

PS:Ein Constraint wàre dafür ungeeignet, Trigger könnte gehen, aber normalerweise darf eine Triggercode nicht auf die eigene Tabelle
zugreifen.

Ähnliche fragen