Aber sonst? Heissen unsere Städte vielleicht D-1, D-4, D-5, Bo-1. Oder doch eher Köln, Nürnberg, München, Dresden, Potosí?Lautet Deine Telefonnummer vielleicht AxelJanssenWoauchimmerWaldstrasse12 oder Dein KFZ-Kennzeichen SchönerGelberPorscheVonAxelJanssenAusWoauchimmer?
Es gibt über die Notwendigkeit Speicherplatz zu sparen oder die Anwendungsgeschwindkeit hinaus in der Praxis sehr wohl weitere triftige Gründe, in einer Anwendung ein Nummernsystem zu verwenden. Z. B. zur schnellen Identifizierung von Dokumenten im Telefongespräch o.ä.Als Primär- oder Fremdschlüssel in RDBMS bin ich ein Verfechter von integer und bigint. Aber in Lotus Notes bringt es dir einfach keine oder nicht merkbare Vorteile, ob du aa oder 11 verwendest. In Notes wie übrigens auch in allen Anwendungen von xml als Datenspeicher bringen Zahlen keine merkbaren Performance-Vorteile.
Darüber hinaus haben Bezeichnungen von Dokumenten die unangenehme Eigenschaft, dass sie dem Anwender spätestens am nächsten Tag unpassend erscheinen und dringend geändert werden möchten.Das ist eine ganz andere Frage. Wenn ich wirklich einen eindeutigen, unveränderbaren key in einer Lotus Notes Datenbank benötige, würde ich zuerst mein Augenmerk auf die DocumentUniqueID legen. Die ist nämlich vom System generiert.
Nein, das "Nummernproblem" lässt sich nicht umgehen in Notes, IMHO.
Wir gehen das bei diversen Anwendungen (über diverse internationale Server replizierend, mit lesegeschützten Dokumenten ...) per "Nummernserver" an: Auf einem zentralen Server liegt eine separate Datenbank, die die Nummernkreise verschiedener Anwendungen verwaltet. Ist diese DB nicht erreichbar (z.B. weil der Anwender lokal ohne Netzwerkverbindung arbeitet), können Dokumente nur als "Entwürfe" angelegt werden, die entsprechend in einem privaten Entwurfsordner der Anwender abgelegt werden.Bringt das echt so viele Vorteile? Zumindest ist es ein single point of failure. Warum so kompliziert und nicht einfach die eindeutige vom System bereits generierte DocumentUniqueID verwenden. Oder eben "Business Keys" in den Dokumenten. Natürlich kann es Probleme geben, wenn die "mutable", d.h. editierbar, sind. Aber eure magischen Nummern vom Nummernserver lassen sich zumindest von einer böswilligen Person mit Autor-Rechten auf das Dokument ändern. Ausser der DocumentUniqueID ist nämlich alles in einem Notes-System per Agent mutable.
fussi=# select * from offerstock;
id | iduser | idstock | amount | price | creation
-----+--------+---------+--------+-------+-------------------------
265 | 251 | 23 | 1 | 25.00 | 2007-04-21 16:51:30.265
271 | 237 | 25 | 20 | 25.00 | 2007-04-22 21:43:20.14
(2 Zeilen)
fussi=# select offerstock.id, "user".name, stock.name, offerstock.amount, offerstock.price from offerstock, "user", stock where offerstock.
duser= "user".id AND offerstock.idstock = stock.id;
id | name | name | amount | price
-----+-------+---------+--------+-------
265 | Axel | Chile | 1 | 25.00
271 | Axel1 | Uruguay | 20 | 25.00
(2 Zeilen)
habe auch eine Datenbank mit Nummern. Ich hole die Zahl von einem normalen Dokuemtn was ich als Profildokument nutze. Erst wenn der User "Speichern" klickt (alle anderen Arten von Speichern habe ich unterdrückt) wird im aktuellen Dokument die Nummer vom Profildokument geholt plus 1 addiert und in das Feld Nummer geschrieben und dann sofort das Feld im Profildokument ebenfalls um 1 erhöt. So klappt das bei uns ganz gut. Problem kann so nur auftreten wenn wirklich 2 Leute zu gleichen Zeit bei unterschiedlichen Dokumenten "Speichern" drücken...
Cash
Martin hat schon das richtige geschrieben - das kann nicht funktionieren. Und wenn wir bei Alarmglocjken sind, dann läuten diese bei mir, wenn jemand schreibt "klappt das bei uns ganz gut". Konjunktiv? Klar! Es funktioniert, oder es funktioniert nicht - und das ganze robust geprüft! Und dieses Prinzip kann nicht "klappen" - das ist genau das, was man niemals machen darf.
Hallo Ihr,NOCH.
mittlerweile habe ich mein sog. 'Problem' doch lösen können und ähnlich wie "Cash" schon beschrieben hat, per Profildok gelöst. Da ich im Thema Notes-Entwicklung noch recht am Anfang stehe, sind mir selbstverständlicher Weise noch nicht sehr viele Möglichkeiten bekannt. Nachdem ich mich aber hier im Forum auf die Suche nach Profildokumenten gemacht habe, bin ich doch schnell fündig geworden...und auch die Notes-Hilfe ist diesbzgl ein Blick wert. Das ganze funktioniert mittlerweile auch sehr sauber und die User haben auch noch nicht gemeckert :P
Profildokument sind
- schnell da im Cache
- u.U. unbrauchbar da im Cache
Also: Diese nur verwenden, wenn deren Inhalt sich innerhalb einer Session nicht ändert.
Genau diese Überlegungen habe ich auch angestellt, um einen Mechanismus zu bekommen, der mir Fortlaufende Nummern erzeugt.
Das mit dem Profildokument ist keine gute Idee und funktioniert auch nur im Single-User-Betrieb. Ein Profildokument wird für den schnellen Zugriff ge-cached und nicht sofort zurückgeschrieben (erst beim beenden der Sitzung).
Probier das empfohlene Beispiel mal an mehreren Stationen und Du wirst sehen, dass diese die Nummern paralell hochzählen.
Aber in einem Notes System neige ich eher dazu Daten "einfach" redundant zu halten.Schon richtig Axel, ich ja auch - es kommt wohl immer darauf an, um welche Anwendung es geht: wenn ich ein Diskussionsforum entwickle, sind Nummern sicher deplatziert. Bei einer Helpdeskanwendung sollte man über schnelle Identifizierung per Ticket schon nachdenken. Und für ein Auditmanagementsystem benötige ich unbedingt eindeutige Auditnummern, da die Norm dies vorschreibt.
Und warum so agressiv bei meinen Namen?Weil es hier in der Regel zum guten Ton gehört, dass man zumindest den echten Vornamen bekannt gibt, da die Kommunikation dann persönlicher ist.
Cash
Die Datenbank läuft also ist es mir alles andere erstmal egal. Die Datenbank läuft nur auf einen Server.Ich hatte es ja schon in meiner ersten Antwort vorausgeahnt, nein gewusst, dass es so kommt ;-)
Wozu die Aufregung?
Und warum so agressiv bei meinen Namen?
Cash
Es ist immer wieder interessant wie wenig Leute die Forumssuche benutzen bzw. wieviel Geduld ihr aufbringt, diese Diskussion das xte mal zu führen.Das sind die Autoresponse-Agenten, die man hier aktivieren kann ;)