Personenstammsätze

Thomas Berger ThB at gymel.com
Fr Jul 11 11:50:50 CEST 2003


Lieber Herr Groeschl, liebe Liste,

> in unserer Datenbank ist ein merkwürdiges Phänomen aufgetreten. Wir
> haben
> mehrere Personenstammsätze, in denen die gleichen Familien- und Vornamen
> stehen, es handelt sich aber um verschiedene Personen.
> Alle anderen Angaben zu diesen Personen sind unterschiedlich, auch in
> #00 stehen jeweils verschiedene Id-Nummern. Ruft man solche Einträge
> über das Register auf, wird eine Ergebnismenge angezeigt - klar. Ändert
> man nun einen Namen aus dieser Ergebnismenge, z.B. Braun, David in
> Brown, David, geschieht
> folgendes: Sämtliche David Brauns werden unter Brown, David im Register
> abgelegt, es erscheint also z.B.: 3 Brown, David. Ruft man nun die
> Ergebnismenge auf, wird darin aber richtig angezeigt:
...

> Erst eine Neuindexierung bereinigt sämtliche Fehlanzeigen. Soeben noch
> in
> der neueste Version der Demo-Datenbank getestet - dort tritt die gleiche
> Erscheinung auf. Was mache ich falsch?

Herr Hoeppner hat ja bereits ausfuehrlich geantwortet,
hier nur einige weiterfuehrende Informationen:

Gesteuert wird dieses Verhalten durch die sogenannten
Pseudoschluessel, vgl. Handbuch 10.2.6.8: Strenggenommen
hat er nicht viel mit v14-Ersetzungen zu tun, ist aber
die "Loesung" fuer das Problem, dass bei Aenderungen der
Ansetzung *kein* Schluessel im Register "umzieht":
Prduziert ein Stammsatz einen oder mehrere Schluessel
|_<n>|<i><Schluessel>
so werden bei Aenderung des Satzes alle vorigen Eintraege
im Register <i> veraendert, sofern sie mit <Schluessel>
beginnen (n = 1) oder mit <Schluessel> uebereinstimmen
(n = 0).

Diese Problemloesung hatte allerdings den unguenstigen
Effekt, dass Korrekturen, die wegen Namensuebereinstimmung
(Indexierung nichtindividualisierter Ansetzungen) faellig
werden, *alle*, auch anders oder nicht verknuepfte Eintraege
veraendern.

Abhilfe ginge unter a99 mittels Registermaskerade:
Indexieren Sie die Identnummer als Teil des v14-Ersetzungs-
schluessels *hinter* dem Namen (mit einem selbsterfundenen
Steuerzeichen umschlossen) und blenden diesen dann im
Fussabschnitt der .cPI aus (und - :-(((( - in allen
Anzeigeparameterdateien, wo es so ein Konstrukt zur
globalen Nachbearbeitung von Ausgabetexten leider nicht
gibt, hier kann man aber evtl. mit den neuen V-Sequenzen
tricksen, das habe ich noch nicht ueberlegt).

Was bei Pseudoschluesseln genau passiert, ist allerdings 
ueberhaupt nicht klar, weil ja allegro eigentlich keine Chance 
hat, die Aenderung eines konkreten Schluessels von "vorher" in 
"nachher" zu verfolgen (wie das Handbuch in 10.2.6.8 suggeriert), 
sondern nur die Gesamtheit der Schluessel betrachtet.

Krasses Beispiel: Die Indexierung sei so eingestellt, dass

#4n Mueller, Bert
die Pseudoschluessel
_1|1Bert
und
_1|1Mueller
erzeugt.

Aendert man jetzt die Ansetzung auf
#4n Meyer, Tom
werden die Pseudoschluessel
_1|1Meyer
und
_1|1Tom
erzeugt.

Woher weiss das Programm nun, dass im Register 1 alle Indexzeilen 
mit "Mueller" auf "Meyer" und alle mit "Bert" auf "Tom" zu aendern 
sind, und nicht die von "Mueller" auf "Tom" sowie von "Bert" auf
"Meyer"?

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro