Domino 9 und frühere Versionen > ND6: Entwicklung
Fragen zur Formalsprache
Marinero Atlántico:
--- Zitat von: ERVO am 21.04.05 - 19:39:39 ---Damit die Nutzer eindeutig bleiben, soll jeder eine Nutzernummer (ID) bekommen. Unter der er auch Bücher ausleiht, vorbestellt etc.
--- Ende Zitat ---
:)PRAKTISCHER TIPP PRAKTISCHER TIPP PRAKTISCHER TIPP !!!!! :)
In Notes hast du einen eindeutigen KEY. Es ist der Notes Name. Der Notes User Name ist innerhalb einer Domäne eindeutig. UND DEN SOLLTEST DU FÜR DIESE AUFGABE NEHMEN.
@username (gibt da verschiedene Formate. Ich empfehle Abbreviate, s. Doku)
VIEL RAUCH UM WENIG
Eric. Warum willst du eine eindeutige ID?
Falls ich jemals einen Blog haben sollte, wird der erste Beitrag sein:
"Verteilte Computersysteme können nicht in eindeutig aufsteigender Reihe zählen"
Du lässt dich hier sicher von dem Identity Column Feature in RDBMS leiten. Bei einem Insert können heutige nicht-geclusterte (und vermutlich auch einige geclusterte) RDBMS eindeutige Nummern vergeben.
Warum ist das so toll eine eindeutige Nummer in RDBMS zu haben?
Es ist tatsächlich eine Best Practise pro Tabelle einen Primary Key als Nummer zu haben.
BigInts sind einfach performanter als andere eindeutige Keys wie etwa VarChars bei Joins, where, etc.
V.a. Joins aber auch wheres spielen in Notes eine wesentlich geringere Rolle als in RDBMS.
In Notes ist das ein bischen anders. Es ist praktisch unmöglich eindeutige Nummern zu generieren, ohne dadurch andere Nachteile zu haben.
Das hat verschiedene Ursache. Eine von denen ist, dass es bei Notes relativ üblich ist, dass User sich die gesamte Datenbank per Replikation auf lokal holen, darin arbeiten und später mit dem gemeinsamen Datenbestand auf dem Server replizieren. Und sowieso sind Notes Anwendungen oft über mehrere Server verteilt und die Vergabe einer eindeutigen ID benötigt ganz einfach, dass die unterschiedlichen Datenbestände synchronisiert sind. Aber genau dies passiert nicht in Echtzeit, sondern eben in bestimmten längeren Zeitintervallen.
Im Gegensatz werden RDBMS wesentlich seltener repliziert. Zumindest nicht bis ich mit Dafodil Replicator, Apache Derby und egal-welcher-vernünftigen-Serverdatenbank mein eigenes, openSource basiertes Groupware Imperium gestartet habe. Ja Ed Brill, du hast noch ein wenig Zeit, aber fang schon mal an für die schlechten Zeiten zu sparen. 8)
BTW war bis Websphere 3.5 oder 4.0 (so genau weiss ich es auch nicht mehr) der empfohlene eindeutige Key für Entity Beans gemanagte RDBMS Tabellen die ID da auch nicht einfach ein unschuldiges Nümmerschen, sondern sollte aus der MAC-Adresse des Rechners, der Computerzeit und einer Zufahlszahl berechnet werden (so ungefähr jedenfalls, ich poste mal irgendwann den Algorythmus).
ERVO:
@Axel:
In der Maske "Buch" solle es bei mir einknöfchen "Ausleihen" geben, dahinter verbirgt sich @Command([Compose]; "Ausleihe"), in der Maske "Ausleihe" möchte ich trivialer Weise den Titel des auszuleihenden Buches darstellen. D.h., in dem Moment kommen ich nicht an den Titel ran :(
@ Marinero Atlántico:
Die ID hat weniger was mit relationalen Datenbanken zu tun, als vielmehr mit der Tatsache, dass ich den Nutzer "Hans Müller" vom Nutzer "Hans Müller" unterscheiden möchte. Ich hab mir das mit der Ausleihe so vorgestellt, dass der Ausleiher der Biblothekarin seine Nummer sagt, damit die diese Nummer in die Maske "Ausleihe" einträgt. Beim Speichern wird dann überprüft, ob es den Nutzer gibt, falls nicht ....
Andere Variante wäre, man macht ein Listenfeld mit allen Nutzern. Das kann aber bei 100 Nutzern etwas unpraktisch werden und schien mir für mein Erstlingswerk auch etwas zu kompliziert.
Ich danke an dieser Stelle mal für die anregenden Beiträge.
Grüsse Eric
Axel:
--- Zitat von: ERVO am 25.04.05 - 11:48:49 ---@Axel:
In der Maske "Buch" solle es bei mir einknöfchen "Ausleihen" geben, dahinter verbirgt sich @Command([Compose]; "Ausleihe"), in der Maske "Ausleihe" möchte ich trivialer Weise den Titel des auszuleihenden Buches darstellen. D.h., in dem Moment kommen ich nicht an den Titel ran :(
--- Ende Zitat ---
Hi,
das ist sehr einfach möglich. Die markierst in den Maskeneigenschaften der Maske Ausleihe die Option "Formeln übernehmen Werte aus gewähltem Dokument". In die Maske selbst fügst du ein Feld für den Buchtitel ein, dass den gleichen Namen hat wie das entsprechende Feld in der Maske Buch. Diesen Namen trägst du auch noch bei dem Vorgabewert des Feldes in der Maske Ausleihe ein. That's it.
Axel
koehlerbv:
--- Zitat von: Axel am 25.04.05 - 13:43:30 ---... fügst du ein Feld für den Buchtitel ein, dass den gleichen Namen hat wie das entsprechende Feld in der Maske Buch ...
--- Ende Zitat ---
Das tut noch nicht mal noooot, Axel ;) Auf die Formel für den Vorgabewert kommt es an, nicht auf den Feldnamen.
Bernhard
Axel:
--- Zitat von: koehlerbv am 25.04.05 - 13:45:36 ---Das tut noch nicht mal noooot, Axel ;) Auf die Formel für den Vorgabewert kommt es an, nicht auf den Feldnamen.
--- Ende Zitat ---
Da bin ich etwas anderer Meinung, Bernhard. Der Feldname kann lauten wie er will. Wenn die Option "Formeln übernehmen..." gesetzt ist, dann wird der Inhalt des Feldes übernommen dessen Name im Vorgabewert drin steht. Die Übernahme hängt nur von Vorgabewert ab.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln