Klaus Mock: Sql Abfrage mit Gruppierung

Beitrag lesen

Hallo,

ja hat es, wobei es nicht darum geht, mehr als einen unique und nicht zu vergessen not null spalte zu haben, sondern darum, keine "inhalte" in den pk zu legen. das problem dabei ist, dass sich die inhalte im laufe der zeit ändern können und man dann nicht nur den sprechenden schlüssel ändern muss, sondern aller wahrschenilichkeit auch alle anderen spalten, wo er als fremdschlüssel verwendet wird.

Dann heisst das ja wohl, dass eine der Eigenschaften eines Primärschlüssels dessen unveränderlichkeit über die gesamte Lebensdauer eiens Datensatzes ist. Wenn das garantiert wäre, würde auch nichts dagegen sprechen, dass, wie Du es nennst, Inhalte im PK hinterlegt sind.

ein beispiel dafür wäre eine autonummer. diese ist sicherlich unique und not null, erfüllt also beide kritereien eines pk. aber sie kann sich für eine und dasselbe auto im laufe der zeit ändern.

Naja, eine Fahrgestellnummer ist ebenfalls eindeutig und nicht veränderbar (ausser kriminelle Elemente sind am Werk, aber da frage ich mich, ob die dann eine Datenbank einsetzen;-). Also würde ich eher die hernehmen.

Wie oben gesagt, denke ich auch, dass der PK während der Lebenszeit nicht veränderlich sein soll. _Wie_ der Wert jedoch generiert wird, und ob er so 'nebenbei' auch noch eine Bedeutung hat, ist imho unerheblich. Diese Eigenschaft hatten allerdings Identifikationsnummern auch schon in de Pre-IT-Ära.

die performance von unterabfragen hat einen schlechten ruf. in der praxis sind sie aber in regel viel schneller, besonders im vergleich zu UNION, der meiner meinung nach in diesem fall nicht nur unflexibler ist, sondern auch eine sortierung der gesamten ergebnismenge nach sich zieht, da er distincte werte auschließt, mal davon abgesehen, ob das überhaupt gewollt ist.

Naja, UNION macht in der Regel ein implizites DISTINCT, welches man mit UNION ALL dann meist auch verhindern kann.
Und, wie schon gesagt, ich könnte das rein aufgrund des Statements nicht wirklich entscheiden, was schneller sein würde.

Ausserdem, was meinst Du mit unflexibler? Das kann ich auch nicht sehen. Ich bin der Meinung, dass es irgendwann einen Punkt gibt, wo man für eine bestimmte Aufgabe ein bestimmtes Staement braucht, und wenn sich die Rahmenbedingungen ändern, ändert man auch das Statement.

Grüße
  Klaus