Was soll sich Otto-Normaluser unter einem "technischen und einem fachlichen Schlüssel" vorstellen?
Ziemlich genau das, was Du ausgeführt hast. Ich gehe davon aus, dass hier vorwiegend Entwickler und nicht Normal User unterwegs sind.
Zitat:
Oder was ist das ? "die Anwendung sollte sich für den Anwender transparent verhalten". Das sind lediglich Schlagwörter, die einem vorgaukeln, einer wisse schon was er sagt.
Transparenz ist für mich ganz allgemein, dass Außenwirkung und Geschehen übereinstimmen.
Im dargestellten Fall wäre es intransparent, wenn der Anwender eine ID vergeben kann, die manchmal 1:1 übernommen wird, manchmal aber nicht (abhängig von der Triggerlogik)
Zitat:
Ich übersetze das mal so : zu jedem Datensatz gehört eine ID (könnte man "technischer Schlüssel" nennen), die der Endbenutzer allerdings weder sehen noch manipulieren soll (Transparenz ?).
Wenn das Verhalten der technischen ID konsistent ist und diese ID für den Anwender gänzlich unerheblich ist, kann man sie auch verstecken, ohne dass ich das intransparent nennen würde.
Zitat:
Im Programm selbst wird nur mit merkbaren Nummern hantiert (fachliche Schlüssel ?). Sprich : Artikel-Nr., Rechn.-Nr. usw. Man nimmt nun eine Art.-Nr. aber nicht, um sie in sämtlichen abhängigen Tabellen, z.B. Rechnungspositionen zu verwenden.
Ja, so meinte ich das.
Zitat:
Jetzt wären wir beim Fall "Int-Feld nachträglich auf autoincrement setzen". Sofern das um eine ID geht, dann nützen Generatoren/Trigger zuerst mal gar nichts. Denn die ID ist ja schon vorhanden.
Wieso nützen die nichts? Eine ID mit definierter Eindeutigkeit ist per se unabhängig von einem Trigger / Autoincrement Mechanismus. Alle ID die schon da sind, sind per Definition bereits eindeutig.
Zitat:
Wie bei meinem Beispiel Importieren von Fremddaten. Der ID-Wert muss dann auf einen vernünftigen Anfangswert gesetzt werden. Erst dann kann der Trigger ohne Kollisionen aktiv werden.
Ob ich "regulär" Daten mittels Programmmaske erzeuge oder importiere, ist dem Trigger doch vollkommen egal.
Verwendet eine Applikation den via Trigger erzeugten Primärschlüssel (von mir zuvor technischer Schlüssel genannt) zur Darstellung von fachlichen Inhalten (z.B. die Rechnungsnummer), dann ist das ganze natürlich für die Tonne.
Genau diesem Problem galt mein Hinweis, diese Schlüssel besser von vornherein getrennt zu verwalten.
Zitat:
So etwas hilft da auch nur halb :
..
Ja, sehe ich auch so.