Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datenbankentwurf - Vorschläge

Empfohlene Antworten

Veröffentlicht

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

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.

  • Autor

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...

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).

  • Autor

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.