<b>Folgende Problemstellung:<br>
</b>Es gibt eine Artikeltabelle. Jeder Artikel soll einer Serie angehören.
Anhand der Serie sollen im Programm verschiedene Aktionen durchgeführt werden. z.B.: Steuerung der Formularanzeige, andere Berechnungsgrundlage für Preise usw. Es soll voreingestellt z.B.: 3 Serien geben. Bei einem späteren Update kann es passieren, das eine Serie wegfällt bzw. eine Serie hinzukommt. Außerdem soll der Benutzer frei definierbare Serien anlegen/löschen können.
<br>
<b>Lösungsansätze:<br>
</b>Sollte ich einen neuen Typ in Delphi erstellen (z.B.: TSerie = (Serie1, Serie2, Serie3)?
<u>Vorteil: </u>Ich kann bsp. dem Formular eine Variable vom Typ TSerie
übergeben und anhand dieser Serie die Anzeige des Formulars bzw. die Berechnung des Artikel steuern; Ich muss dann halt nur alle Varianten abfragen;
<u>Nachteil:</u> Ich habe keinen wirklichen Klartext für die Serie (könnte über ein Array gesteuert werden); Ich kann in SQL Anweisungen nur mit "loser Integer Zuordnung" hantieren und auch keinen Klartext in Selectanweisungen ausgeben; Wegfallen einer Serie verändert die Aufzählungsreihenfolge; Der Benutzer kann die Serien nicht erweitern.
<br>
Sollte ich eine Lookuptabelle erstellen, die eine ID und einen Namen der Serie enthält und diese mit der Artikeltabelle verknüpfen?
<u>Vorteil: </u>Ich habe einen Klartext zu jeder Serie; Klartext bei
Selectanweisungen; Benutzer kann Serien erweitern; Durch ForeignKey kann keine Serie gelöscht werden, der noch Artikel angehören;
<u>Nachteil:</u> Ich kann im Formular (Delphi) nur mit losen ID's hantieren um die Ausgabe/Berechnung zu steuern!
<br>
Sollte ich eine Mischung aus beiden verwenden?
<u>Nachteil:</u> Ich muss die Tabelle immer mit dem Datentyp abgleichen.
<br>
Weitere Probleme:
Was passiert, wenn der Endbenutzer selber Serien eingeben darf und ich später Datentyp erweitern muss?
Dann stimmt die ID (Tabelle) zu Datentyp-Index zuordnung nicht mehr.<br>
Was passiert, wenn eine Serie wegfällt und ich einen Delphitypen verwende?
Dann stimmt die Aufzählungsreihenfolge nicht mehr!
<br>
Was ist nun besser bzw. wie kann man es am besten lösen?
<br>
Grüße
M. Pannier
<br>
P.S.: Ich hoffe die Problemstellung ist einigermaßen verständlich formuliert.
</b>Es gibt eine Artikeltabelle. Jeder Artikel soll einer Serie angehören.
Anhand der Serie sollen im Programm verschiedene Aktionen durchgeführt werden. z.B.: Steuerung der Formularanzeige, andere Berechnungsgrundlage für Preise usw. Es soll voreingestellt z.B.: 3 Serien geben. Bei einem späteren Update kann es passieren, das eine Serie wegfällt bzw. eine Serie hinzukommt. Außerdem soll der Benutzer frei definierbare Serien anlegen/löschen können.
<br>
<b>Lösungsansätze:<br>
</b>Sollte ich einen neuen Typ in Delphi erstellen (z.B.: TSerie = (Serie1, Serie2, Serie3)?
<u>Vorteil: </u>Ich kann bsp. dem Formular eine Variable vom Typ TSerie
übergeben und anhand dieser Serie die Anzeige des Formulars bzw. die Berechnung des Artikel steuern; Ich muss dann halt nur alle Varianten abfragen;
<u>Nachteil:</u> Ich habe keinen wirklichen Klartext für die Serie (könnte über ein Array gesteuert werden); Ich kann in SQL Anweisungen nur mit "loser Integer Zuordnung" hantieren und auch keinen Klartext in Selectanweisungen ausgeben; Wegfallen einer Serie verändert die Aufzählungsreihenfolge; Der Benutzer kann die Serien nicht erweitern.
<br>
Sollte ich eine Lookuptabelle erstellen, die eine ID und einen Namen der Serie enthält und diese mit der Artikeltabelle verknüpfen?
<u>Vorteil: </u>Ich habe einen Klartext zu jeder Serie; Klartext bei
Selectanweisungen; Benutzer kann Serien erweitern; Durch ForeignKey kann keine Serie gelöscht werden, der noch Artikel angehören;
<u>Nachteil:</u> Ich kann im Formular (Delphi) nur mit losen ID's hantieren um die Ausgabe/Berechnung zu steuern!
<br>
Sollte ich eine Mischung aus beiden verwenden?
<u>Nachteil:</u> Ich muss die Tabelle immer mit dem Datentyp abgleichen.
<br>
Weitere Probleme:
Was passiert, wenn der Endbenutzer selber Serien eingeben darf und ich später Datentyp erweitern muss?
Dann stimmt die ID (Tabelle) zu Datentyp-Index zuordnung nicht mehr.<br>
Was passiert, wenn eine Serie wegfällt und ich einen Delphitypen verwende?
Dann stimmt die Aufzählungsreihenfolge nicht mehr!
<br>
Was ist nun besser bzw. wie kann man es am besten lösen?
<br>
Grüße
M. Pannier
<br>
P.S.: Ich hoffe die Problemstellung ist einigermaßen verständlich formuliert.
Comment