Hallo Marino,
Marino Salvalaggio schrieb:
> Hi,
> 
> habe mir  das Ganze noch mal durchdacht.
> 
> Bei MS-Access wird in der Regel erst inkrementiert, wenn die erste Zeile
> gefüllt ist und mit "Rtn" geschlossen wird, bez. wenn mit "Tab" aus dem
> letzten Feld der Zeile herausgesprungen wird.


Auch bei der internen HSQL DB von Base wird erst inkrementiert, wenn der
Datensatz verlassen wird.

> Dabei erscheint nun im Auto-Feld der nächsten Zeile bereits die nächste
> ID-Nummer.

Bei mir erscheint dort (bei Verwendung der internen HSQl-DB) "<AutoFeld>".

> 
> Was aber grundsätzlich (auch bei Access) fehlt ist die Möglichkeit,
> durch eine "Funktion" alle ungenutzten ID's generell zu löschen, d.H.
> den Zähler zu "nullen" und eine erneutes Durchnummerieren zu erzwingen.

Das ist und wird bei relationalen Datenbank-Management-Systemen nicht
ohne Weiteres möglich werden.

Dieses - von Dir gewünschte Verhalten - steht im Widerspruch einer
Datenintegrität.

> Mir ist dabei schon klar, dass dadurch die Konsistenz der Daten
> gefährdet ist. Daher müsste diese "Funktion" nur solange möglich sein,
> wie die Tabelle noch Unverknüpft ist bez. die Verknüpfungen vorher
> gelöst wurden.

Und dies kommt bei Datenbanken nur äußerst selten vor. So dass die
Prüfung, ob so etwas im konkreten Fall durchgeführt werden dürfte viel
zu viele Resourcen bei der Prüfung schlucken würde.

> Der Vorteil wäre, dass dadurch die Hierarchie, sollte sie einmal falsch
> angelegt sein, direkt korrigiert werden kann indem die Zeilen verschoben
> nun neu in die richtige Reihenfolge gebracht werden können.

Welche Hierarchie?

Wenn Du eine Ziffer für eine Sortierung benötigst, solltest Du eine
zusätzliche Spalte einfügen.

> 
> Sonst bleibt nur die Möglichkeit prinzipiell auf "Autowert" zu
> verzichten und statt dessen die ID händisch zu erzeugen, oder eine
> zweite Spalte für eine durchgängige ID einzurichten.

Genau das ;-)

> Dann aber fehlt in Base der Parameter "keine Duplikate", wenn z.B.
> mehrere Schlüsselfelder gebunden angewandt werden sollten.
> Diese Funktion  "keine Duplikate" steht aber auch für Felder nicht zur
> Verfügung, die keine Schlüsselfelder sind. Das ist eine Einschränkung,
> die es schwierig macht, die gewünschten Ziele mit einfach Mitteln zu
> erreichen.

Wie andreas schon sagte, geht das mit Indices.
> 
> Mir ist klar, dass ich da Wünsche äussere, die sehr tief greifen. Doch
> bin ich überzeugt, dass solche Anpassungen dem Nomal-user den Zugang zu
> Base wesentlich vereinfachen würde. Da ich mich immer dafür einsetzte,
> Aufgaben mit den richtigen Werkzeugen zu lösen, finde ich das Base
> weiter verbreitet werden soll. Dazu muss man sich wohl mit solchen
> Problemen auseinandersetzten.

Aber auch mit den Grundlagen von relationalen
Datenbank-Management-Systemen, für die interne HSQL-DB steht es hier

www.hsqldb.org

Gruß

Mechtilde


-- 
Dipl. Ing. Mechtilde Stehmann
## http://de.openoffice.org
## Ansprechpartnerin für die deutschsprachige QA
## Freie Office-Suite für Linux, Mac, Windows, Solaris
## Meine Seite http://www.mechtilde.de
## PGP encryption welcome! Key-ID: 0x53B3892B


Attachment: signature.asc
Description: OpenPGP digital signature

Antwort per Email an