Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Häufigkeiten und Kreuztabellen aus zweidimensionalem Array errechnen

  Alt 29. Aug 2017, 19:35
Gut, dann beschreibe ich den typischen Fall:

Im ersten Jahr sieht der Fragebogen so aus:

1. Wie alt sind Sie (Jahre)?
2. Wie groß sind Sie (cm)
3. Welches Geschlecht haben Sie (m/w)?
4. Wie lautet Ihre PLZ?
5. Wieviele Personen leben in Ihrem Haushalt
a) Erwachsene?
b) Kinder?

Dies führt zu folgenden Feldnamen: V01,V02,V03,V04,V05a,V05b. Den vorhandenen Feldern wird von mir ein weiteres namens "Altersgruppe" hinzugefügt, dessen Werte aus der Variable (sic!) "V01" errechnet wird.

Im nächsten Jahr fällt das Feld "Alter" aus Diskriminierungsgründen weg. Das Feld "Geschlecht" hat nun die möglichen Werte "so genannt weiblich, so genannt männlich, Transgender, weiß nicht, sage ich nicht, Sonstiges", zudem heißt es nun "Sexuelle Orientierung". Außerdem rückt es an die erste Stelle und wird zu V01. Die Feldernamen heißen nun V01,V02,V03,V04a,V04b - mit nun zum Teil anderen Feldbezeichnungen, Wertbezeichnungen, Wertstrukturen.

Im Jahr darauf wird statt der PLZ das Bundesland abgefragt. Die Wertbezeichungen ändern sich von Bezeichnung gleich Wert zum Namen der 16 Bundesländer, der Typ von Integer zu string. Aus Layoutgründen rückt das Feld an die zweite Stelle. Das Alter wird nun wieder abgefragt, da herausgekommen ist, dass sich 18- und 80-Jährige trotz allem doch unterscheiden. Das Feld "Sexuelle Orientierung" heißt nun "Sexuelle Ichbestimmung" und erhält zusätzlich ein alphanumerisches Freifeld, das Feld wird daher in a) und b) erweitert. Die Körpergröße wird nun auf 0,5 cm genau abgefragt, der Typ ändert sich von Integer zu Float. Das Layout und damit die Reihenfolge der Felder wird komplett geändert, die Feldnamen damit auch. Die errechneten Felder - von denen es mehr gibt als in der DB sind - müssen aus immer wieder anders bezeichneten Feldern bestimmt werden.

Natürlich muss das Programm alle Datenbanken aller Jahre einlesen und richtig verarbeiten und alles richtig bezeichnen können. Tut es auch, weil ich einfach für jedes Jahr einen kompletten Satz von Bezeichnungen und Berechnungen erstellt habe. Ändert sich das drittletzte Feld, ist das Leben leicht. Fallen - wie in diesem Jahr - von den ersten 10 Feldern 5 weg, wird es bitter.

Ich habe mir daher ein System überlegt, wie ich gleichbleibende Felder (fast immer >95%) nur einmal beschreibe und der Position in der DB zuordne, egal wie sich der Feldname geändert hat. Ändert sich ein Feld, erstelle ich eine neue Beschreibung. In jedem Jahr muss ich nun nur die richtige Beschreibung der Position in der DB zuweisen, gleichbleibende Abschnitte (meist 90% ) kann ich einfach kopieren.

Ich frage mich nur, wo die tausend anderen Leute sind, die doch genau das gleiche Problem haben müssen.
  Mit Zitat antworten Zitat