DB design
am 21.11.2006 15:04:49 von BF
Hallo NG,
ich erstelle eine Datenbank mit statistischen Informationen zu
Ländergruppen. Es gibt eine Tabelle in der land_id, land_name (u.a.)
gespeichert ist, eine tabelle für die statistischen Daten (id,
land_id, wert_art, wert, quelle_id, jahr) und eine für die benutzten
Quellen.
Nun stehe ich vor der Frage wie ich bei der Berechnung von Daten die
Tatsache berücksichtige, dass Länder mitunter ihren Namen ändern
(Sowjetunion -> Einzelstaaten, DDR -> Bundesrepublik etc.).
Wie gehe ich damit am geschicktesten um? Meine erste Idee ist eine neue
Tabelle anzulegen, in der ich paarweise die id's von den Ländernamen
speichere, die aufeinanderfolgen. Falls ich für ein Land dann keine
Daten finde, wird dann in dieser Tabelle nach alternativen ID's gesucht
und die benutzt.
Was mich besonders interessiert ist die Frage wie sich nun die
Berechnung von Statistiken bewerkstelligen lässt, d.h. lässt sich der
Wechsel eines Ländernamens rein mit (My)SQL Bordmitteln einbeziehen
oder kommt man nicht darum herum dies in die PHP-Skripte einzuarbeiten?
Oder gibt es da bessere Lösungen?
Re: DB design
am 22.11.2006 15:28:49 von Wolfgang Schwach
BF wrote:
> Hallo NG,
>
> ich erstelle eine Datenbank mit statistischen Informationen zu
> Ländergruppen. Es gibt eine Tabelle in der land_id, land_name (u.a.)
> gespeichert ist, eine tabelle für die statistischen Daten (id,
> land_id, wert_art, wert, quelle_id, jahr) und eine für die benutzten
> Quellen.
>
> Nun stehe ich vor der Frage wie ich bei der Berechnung von Daten die
> Tatsache berücksichtige, dass Länder mitunter ihren Namen ändern
> (Sowjetunion -> Einzelstaaten, DDR -> Bundesrepublik etc.).
>
> Wie gehe ich damit am geschicktesten um? Meine erste Idee ist eine neue
> Tabelle anzulegen, in der ich paarweise die id's von den Ländernamen
> speichere, die aufeinanderfolgen. Falls ich für ein Land dann keine
> Daten finde, wird dann in dieser Tabelle nach alternativen ID's gesucht
> und die benutzt.
Wenn es sich um eine reine Namensänderung handelt, würde ich eine extra
Tabelle für die Ländernamen mit dem Gültigkeitsintervall anlegen. Bei
Staaten, die neu gegründet werden, bzw. sich auflösen, sollte das
Existenzintervall der Staaten mit in die Ländertabelle. Wenn man sich
noch mehr Aufwand machen will, kann man noch eine "Übergangstabelle"
mit den Attributen alte_land_id, neue_land_id, datum erstellen. Damit
dürfte es eigentlich auch möglich sein, Werte von vor dem
Zerfall/Zusammenschluss mit nachher zu vergleichen, wenn auch nicht
ganz so einfach.
> Was mich besonders interessiert ist die Frage wie sich nun die
> Berechnung von Statistiken bewerkstelligen lässt, d.h. lässt sich der
> Wechsel eines Ländernamens rein mit (My)SQL Bordmitteln einbeziehen
> oder kommt man nicht darum herum dies in die PHP-Skripte einzuarbeiten?
Siehe oben. Ich glaube, dass das mit SQL alleine durchaus möglich ist.
Gruss Wolfgang
--
__________A_K_K___________
_____wolfgang_schwach_____
____w@akk.org/w@w35.de____