Zum Inhalt springen

Datenbankentwurf - Vorschläge


Krain

Empfohlene Beiträge

Hallo zusammen,

Folgendes Problem:

Vielleicht kennt ja jemand von Euch den OpenImmo-Standard.

Die Struktur ist in etwa so (nur schematisch skizziert):

<openimmo>

 <anbieter>

  <immobilie>

   <kontakt></kontakt>

   <weitere_kontakte></weitere_kontakte>

  </immobilie>

  <immobilie>

   <kontakt></kontakt>

   <weitere_kontakte></weitere_kontakte>

  </immobilie>

  <immobilie>

   <kontakt></kontakt>

   <weitere_kontakte></weitere_kontakte>

  </immobilie>

  <immobilie>

   <kontakt></kontakt>

   <weitere_kontakte></weitere_kontakte>

  </immobilie>

 </anbieter>

</openimmo>

Mein Problem ist nun, dass der Hauptkontakt <kontakt> wahrscheinlich in vielen immobilien der Kontakt gleich ist, zumindest gehe ich davon aus. Nun ist es aber unkomfortabel für jedes Immobilien-Objekt einen Kontakt (bzw. durch <weitere_kontakte> sogar mehrere anzulegen. Ich habe aber hir nichts auf, das ich zugreifen könnte um das zu unterscheiden.

Es gibt zwar sowohl im <kontakt> als auch in <weitere_kontakte> den Tag <personen_nummer>, das müsste ich aber dann mit der Anbieter-ID verbinden um einen eindeutigen Schlüssel zu haben oder nicht? Und ich muß voraussetzen, dass die Daten der Personen mit dieser Nummer auf jeden Fall immer gleich sind...

Ich weiß einfach nicht, wie ich das am besten in einer DB umsetzen soll. Ich tendiere zu einer einzelnen Kontakt-Tabelle, in der ich einen primmärschlüssel vergebe und als Sekundärschlüssel anbieter_id und personen_nummer verwende.

Ich brauche hier wirklich ein paar tips!

Danke

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du brauchst hier zusätzlich zu deiner "Immobilien"-Tabelle eine mit den Kontaktdaten. Nimmst von beiden die PK-Spalte in eine dritte Tabelle (=Zuordnungstabelle) und verknüpfst die Spalte per PK-FK mit der Kontakt- bzw. mit der Immobilientabelle. UK oder PK über beide Spalten der Zuordnungtabelle drüberlegen. Fertig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So habe ich mir das auch gedacht.

Aber dieses XML-File kommt meist ohne Personennummer oder ähnlichem rein. Das ist mein Problem. Woran erkenne ich, dass es diese Person dann schon einmal gibt? Soll ich einfach alle Felder vergleichen?

Oder reicht die Telefonnumer usw...

Es ist ja theoretisch über die einzelne Immobilie auch möglich einen neuen Kontakt anzulegen...

Beispiel:

Ich lese die erste Immobilie

-- überprüfe Kontakt und schreibe in die Kontakttabelle

-- keine weiteren Kontakte vorhanden

lese zweite Immobilie

-- finde Kontakt, ist gleich mit oberem (hier liegt das Problem, woran erkenne ich das?)

-- keine weiteren Kontakte

Danke für die Hilfe...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist nun wirklich blöd. Bei der Telefonnummer haste das Problem der Formatierung und ob mit Länder vorwahl oder ohne, mit Ortsvorwahl oder ohne, evtl. mit "/", "-" oder " " getrennt usw.

Da haste fast keine Chance. Ausser die Telefonnummer ist formatiert und ohne Sonderzeichen, aber was machst du wenn der ne neue Tel-Nummer kriegt ... bei "ergänzenden" Nachladungen?

Die Datenqualität wirste da fast nicht bieten können, da du schon "minderwertige" Daten reinkriegst.

Höchstens mit nur 2 Tablellen (Kontakte und Immobilien und die dann mit PK-FK). Aber da speicherst du dann redundant Daten (einen Kontakt mehrmals, jeweils für die entsprechende Immobilie).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau, das sehe ich auch so.

Ich habe vor mir ein Java-Progrämmchen zu schreiben, das die XML-Datei parsen kann.

Vor dem parsen will ich mir alle Kontakte zu dem jeweiligen Anbieter rausholen und in einem kontaktobjekt speichern.

Dann soll das Dokument geparst werden. Ich erzeuge mir zu jeder Immobilie ein kontaktobjekt und schaue ob es mit einem aus der Datenbank gleich ist...

Wenn es gleich ist benutze ich die ID des bestehenden Kontakt, ansonsten lege ich einen neuen an.

Da diese XML-Datei meistens von einem Maklerprogramm erstellt wird dürfte es eigentlich keine Probleme mit der Formatierung geben, denke ich. (hab es noch nicht probiert)

Aber das ist IMHO die einzige Möglichkeit, die Daten wenigsten einigermaßen sauber zu halten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...