![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
Frage zur Programmlogik
hallo zusammen,
ich überlege gerade wie ich folgendes umsetzen kann: Ich muss aus einer Bestellung eine Auftrag erzeugen. Nun ist es möglich, dass verschiedene Auftragsarten vorhanden sind. Für die Bestellung soll die daraus resultierende Auftragsart in der DB hinterlegt werden. Natürlich muss das auch zu ändern sein. Also hab ich mir gedacht, ich schreibe in eine Ttabelle "einstellungen" den entsprechenden variablen wert und frage diesen über einen 2ten, fest definierten wert ab. Aber irgendwie widerstrebt es mir diesen festen Wert aus der DB über eine Konstante im Programm abzufragen :-( Seht ihr andere Lösungsmöglichkeiten? danke Gruss Kh |
Re: Frage zur Programmlogik
Häh? Sorry, aber ich verstehe die Frage nicht.
Alle Auftragsarten pflegst Du in einer Auftragsarten-Tabelle, oder? Wenn Du eine Bestellung hast (als Datensatz) und daraus einen Auftrag machst, dann kannst Du doch die Art des Auftrages bei der Gelegenheit gleich mit angeben? (Ganz normale Fremdschlüssel-Beziehung). Alternativ kannst Du eine 'Default-Auftragsart' in einer Einstellungstabelle hinterlegen. Dann wird diese gelesen und für neue Aufträge verwendet. Die Auftragsart ist in jedem Fall hinterher immer änderbar. |
Re: Frage zur Programmlogik
Zitat:
das mit der default-auftragsart hab ich mir ja gedacht, nur lese ich da praktisch einen veränderbaren wert mit ner konstante und das irritiert mich etwas. Und ne extra tabelle für einen einzigen DS ? Mh Gruss Kh |
Re: Frage zur Programmlogik
Default-Werte kann man bei der Anlage einet Spalte mit Angeben
|
Re: Frage zur Programmlogik
Zitat:
ich glaube ich muss mich besser ausdrücken ich schreibe den default wert in eine Tabelle. also zb id 1 , aart xy id 2 sonstwas. jetzt muss ich quasi über die angebe des key (1) den wert xy auslesen. und dieser Key ist dann im Programm ne konstante. Das kommt mir einfach irgendwie widerspüchlich vor, deshalb suche ich, wenn möglich, einen aderen Lösungsweg. Gruss Kh |
Re: Frage zur Programmlogik
Ich meinte den Default-Wert in den Metadaten der Spalten. Aber vielleicht reden wir auch aneinander vorbei
|
Re: Frage zur Programmlogik
Zitat:
siehe die erklärung in meinem letzten posting |
Re: Frage zur Programmlogik
Ich versteh dein Problem nicht ganz. Ich würde den Defaultwert nicht als Konstante im Programm sondern als Vorgabewert in der entsprechenden Spalte der Tabelel hinterlegen. Warum als Konstante im Programm?
|
Re: Frage zur Programmlogik
Zitat:
Aber wie hole ich den Defaultwert aus der Tabelle, wenn dies nicht der einzige Wert in dieser Tabelle ist? Das ginge doch nur über ne Konstante die mit der id identisch ist, oder ? |
Re: Frage zur Programmlogik
Du kannst für jede Spalte einen Default-Wert angeben. Der wird genommen wenn die Spalte als NOT NULL deklariert ist und bei der Anlage eines neuen Datensatz nicht mit angegeben wird.
|
Re: Frage zur Programmlogik
Zitat:
also ich hab ne tabelle: id 1 wert xy id 2 wert ab id 3 wert xk so jetzt möchte ich den wert xy aus der tabelle holen. Also muss ich doch auf id 1 abfragen, oder? und 1 ist somit quasi die konstante im Programm |
Re: Frage zur Programmlogik
Und diese 1 willst du doch als Wert einer anderen Spalte nehmen?
|
Re: Frage zur Programmlogik
Zitat:
xy ist quaisi der variable wert den ich aus der tabelle holen möchte |
Re: Frage zur Programmlogik
Woher weist du denn (der Batchlauf) welche Auftragsart zu welcher Bestellung gehört?
Diese Beziehung musst du doch irgendwo festlegen und zwar nicht unbedingt als Konstante im Programm. |
Re: Frage zur Programmlogik
Zitat:
irgendwie hab ich heut ein Problem das richtig darzustellen :-( |
Re: Frage zur Programmlogik
Zitat:
Vielleicht ist das ja der Knackpunkt... Edit Nachtrag: MOOOMENT! Wieso willst Du überhaupt 'xy' in den neu anzulegenden Datensatz schreiben, wenn Du diesen Wert eh schon zu einer ID in einer Tabelle hast? Das ist Redundant und sollte idealerweise vermieden werden. Du solltest in den Datensatz dann gleich die 1 Eintragen, damit sich xy irgendwann mal ändern kann, ohne dass Du alle Datensätze dazu ändern musst. |
Re: Frage zur Programmlogik
Genau das ist die Frage: Wer legt fest zu welcher Bestellung welche Auftragsart gehört? Diese Information muss ja irgendwo vorhanden sein. In den Datensatz für die Bestellung selbst muss natürlich nur die ID der Auftragsart.
|
Re: Frage zur Programmlogik
Zitat:
id 2 für jene. über den das feld mit den einträgen xy oder ab kann ich ja dann die entsprechende Auftragsart wenn nötig ändern. Und genau das ist meine Ausgangsfrage.die id brauch ich ja dann als konstante im Programm,und das wollte ich vermeiden. |
Re: Frage zur Programmlogik
Dann würde ich das über einer extra Tabelle regeln
|
Re: Frage zur Programmlogik
Zitat:
Zitat:
Oder kann die Auftragsart aus der Bestellung automatisch ermittelt werden? An welchem Wert ist das fest gemacht? Dieser Wert muss dann doch in der Tabelle zu den Auftragsarten hinterlegt werden. Dann kannst Du das auch automatisch ermitteln. Und selbst dann: Warum schreibst Du dann nicht direkt die ID der Auftragsart in den Auftrag, wenn Du die Auftragsarten eh schon in einer eigenen Tabelle hast? Wenn Du eine Information wie 'ab' oder 'xy', die eh schon unter einer ID in der Datenbank liegt, jedes mal kopierst, dann untergräbt das das Grundprinzip der Datenbank. In so einem Fall legt man gleich die richtige ID im Zieldatensatz ab und nicht den Wert hinter der ID. |
Re: Frage zur Programmlogik
Zitat:
Danke euch, gruss KH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz