Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#12

Re: SELECT DISTINCT und JOIN - Redundanzen verringern

  Alt 21. Okt 2007, 13:29
Zitat von mkinzler:
Vielleicht sollte man auch mal das Schema richtigstellen. Welche Bedeutung ahben die verchiedenen Namen?
Die Datenstruktur ist von der Post vorgegeben. Die Quelldatei ist eine Textdatei (feste Feld- und Satzlängen) mit 150 MB. Ich will sie in mehrere Tabellen in einer "richtigen" Datenbank übernehmen.
  • Str_ID ist die bundesweit eindeutige laufende Nummer zu einem Straßennamen.
  • Str_Nr ist die laufende Nummer für alle Straßen mit gleichem Namen.
  • Name_Sort ist die eindeutige, sortierbare Bezeichnung.
  • Name46 ist die "lange", normale Schreibweise mit max. 46 Zeichen.
  • Name22 ist eine Verkürzung mit max. 22 Zeichen für den Fall, dass ein Adressenfeld nicht lang genug ist.
  • Status = 'G' sind gültige Straßennamen. Andere Werte 'W', 'S', '1' usw. verweisen darauf, dass der Straßenname in diesem Ort korrigiert oder geändert wurde.
Zitat:
Was bezweckst du mit der Abfrage (zu was die 2. Tabelle)?
Redundanzen vermeiden, vor allem wegen der drei Schreibweisen: Die Königsberger Straße gibt es 172x, eine Friedrich-Ebert-Str. 188x und eine Gartenstraße 285x.

Da ich (anders als die Post-Textdatei) mit einer relationalen DB arbeite, brauche ich sowieso getrennte Nachschlagetabellen mit einem PrimaryKey. Da bietet sich eine Tabelle "Straßennamen" an. Jürgen

@Jelly
Das, was Du zitiert hast, ist die Quelltabelle. "... jeweils einen einzigen Datensatz in deine Zieltabelle schreiben. Welcher, scheint dir egal zu sein..." Nicht ganz egal (ich bevorzuge Status 'G'), aber fast.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat