Einzelnen Beitrag anzeigen
Alt 26.04.2003, 17:38   #2
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Zu autoincrement: Ja, ein großes Zahlentypfeld ist vonnöten.

Die Autoincrement Funktionalität ist erstens wegen der Eindeutigkeit der Einträge im Datenbanktabellenindex gegeben, aus diesem Grund also sinnvoll. Pro Tabelle kann man einen oder mehrere Indices mit einem oder mehreren Tabellenfeldern (also columns) anlegen. So ist die Sortierung und die Eindeutigkeit eingefügter Datensätze in Bezug auf ihre Indexfelder gewährleistet. Zweitens: Wenn man nun während des Tages im Zug einer Transaktion genau einen spezifischen Datensatz benötigt braucht man eben dieses Autoincrement Feld um an die Information heranzukommen und zwar über die regulären Felder und über das Autoincrementfeld implizit von der Logik her und explizit von der tatsächlichen Vorgangsweise her (dies resultiert in einem SELECT ... WHERE ... AND autoinc_column = xyz_zahl). Nicht jedoch verwenden kann man so ein Autoincrementfeld um eine ständige Zuordnung von einem Datensatz zu einem anderen zu machen, da es im Verlauf einer Reorganisation der Daten in einer Datenbank zur Veränderung der Nummerierung in einem Autoincrementfeld kommt.

Die Methode ein Autoincrement Feld zu verwenden kann man getrost beiseite lassen, wenn man das Datum und die Uhrzeit in Millisekunden aufgelöst verwendet um die Eindeutigkeit der Datensätze zu gewährleisten. Sollten mehr als 1000 Datensätze pro Sekunde in die Tabelle eingefügt werden können und müssen, ist eine Erweiterung auf eine Zehntausendstelsekunde vorstellbar.

Das Problem mit den Nummernkreisen für Artikelnummern, Datentypkonvertierungen oder eben Autoincrementfeldern ist nur durch das Verwenden eines Metadatentyps zu vermeiden. Ein Metadatentyp ist ein Datentyp, der ausreichend und hinreichend Platz bietet, die größte Zahlengröße aufzunehmen, die für einen Zweck benötigt wird sowie für Anwendungen jenseits einer Schnittstellengrenze.

Zusammenfassung:
  • Autoincrementfeld: Grundsätzliche Eindeutigkeit aber nur sessionweite Gültigkeit der Zuordnung von Datensätzen zu ihren Autoincrementfeldwerten
  • Eindeutigkeit erreicht man auch durch die Verwendung von Datum und Uhrzeit als Timestamp für Datenbankeinfügungen (Insertdate)
  • Verwendung eines Metadatentyps für die problemlose Erfassung von Vereinigungsmengen von Daten, Beispiel: Farbspektrum 65536 Farbwerte, 16 Mio. Farbwerte - oder 16bit Auflösung Audio CD zu 24bit bei Audio DVD.

mfg Kikakater
kikakater ist offline   Mit Zitat antworten