Danny: MySQL Umkreissuche Join

Hallo zusammen,

ich stehe vor einer Änderung und komme nicht weiter. Ich habe eine Tabelle "user". Dort sind alle Angaben inkl. Adressdaten und Geodaten enthalten. Diese Frage ich mit einer Umkreissuche wie folgt ab (vereinfacht zwecks Übersicht):

$query = "SELECT *, (  
 ".$radius." * SQRT(2*(1-cos(RADIANS(breit)) *  
 cos(".$rad_b.") * (sin(RADIANS(lang)) *  
 sin(".$rad_l.") + cos(RADIANS(lang)) *  
 cos(".$rad_l.")) - sin(RADIANS(breit)) * sin(".$rad_b.")))) AS Distance  
 FROM user Having ((Distance <= "5"))";  

Nun möchte ich mit eine weitere Tabelle "standorte" erstellen um jedem user mehrere Standorte zu ermöglichen (Normalisierung).
Die Tabelle "standorte" enthält sämtliche Geodaten und die Tabelle "user" die Userdaten.
Um diese zu verbinden ist das Feld "user_id" identisch.

Leider finde ich keinen Ansatz um mein Vorhaben zu realisieren.

Freue mich über jeden Tipp.

Viele Grüße

Danny

  1. Hallo,

    Die Tabelle "standorte" enthält sämtliche Geodaten und die Tabelle "user" die Userdaten.
    Um diese zu verbinden ist das Feld "user_id" identisch.

    Mach ne dritte Tabelle, in der die Standorte den Usern zugeordnet werden.
    Natürlich haben User und Standorte unabhängige id's.

    Zuordnungstabelle zwei Spalten (userID,standortID).

    gruß
    peter

  2. Meine Herren,

    nur so als Brainstorming-Einwurf: Luftlinie ist für eine Umkreissuchen nicht immer die geeignete Wahl, ich ich erinnere mich an ein Beispiel zweier skandinavischer Ortschaften, die Luftlinie nur wenige Kilometer auseinander lagen, die mit dem Auto aber nur über hunderte Kilometer erreichbar waren, man musste (glaube ich) sogar noch eine Fähre nehmen. Wie immer beim Vorführeffekt finde ich die Quelle nicht.

    1. Guten Abend,

      weiterhin würde ich mich über sinnvolle Antworten zu meiner Frage freuen.

      LG

      Danny

      1. Meine Herren

        weiterhin würde ich mich über sinnvolle Antworten zu meiner Frage freuen.

        Was ist an meiner Antwort nicht sinnvoll?
        Wie wäre es, wenn du auf auch andere Antworten eingehen würdest?

    2. Hi,

      nur so als Brainstorming-Einwurf: Luftlinie ist für eine Umkreissuchen nicht immer die geeignete Wahl, ich ich erinnere mich an ein Beispiel zweier skandinavischer Ortschaften, die Luftlinie nur wenige Kilometer auseinander lagen, die mit dem Auto aber nur über hunderte Kilometer erreichbar waren,

      zwar nicht Skandinavien, sondern Irland, und auch nicht hunderte km, aber doch ein ziemlicher Unterschied:
      Rosroe (Galway) -> Doovilra (Mayo)
      Luftlinie 3km
      Fahrstrecke 53km

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
      1. Meine Herren,

        zwar nicht Skandinavien, sondern Irland, und auch nicht hunderte km, aber doch ein ziemlicher Unterschied:

        Meine Gedächtnis, der alte Arsch, neigt zu Übertreibungen.

        Rosroe (Galway) -> Doovilra (Mayo)
        Luftlinie 3km
        Fahrstrecke 53km

        Danke dafür.

        Bei Google Maps kann man sich das schön vor Augen halten:

        1. Hallo,

          zwar nicht Skandinavien, sondern Irland, und auch nicht hunderte km, aber doch ein ziemlicher Unterschied:

          Meine Gedächtnis, der alte Arsch, neigt zu Übertreibungen.

          Rosroe (Galway) -> Doovilra (Mayo)
          Luftlinie 3km
          Fahrstrecke 53km

          Biete Österreich: versuch mal von Hochkrumbach nach Baad zu kommen!

          Gruß
          Kalk

    3. Meine Herren,

      nur so als Brainstorming-Einwurf: Luftlinie ist für eine Umkreissuchen nicht immer die geeignete Wahl, ich ich erinnere mich an ein Beispiel zweier skandinavischer Ortschaften, die Luftlinie nur wenige Kilometer auseinander lagen, die mit dem Auto aber nur über hunderte Kilometer erreichbar waren, man musste (glaube ich) sogar noch eine Fähre nehmen.

      Sehr guter Beitrag zum Thema "Talente finden Lösungen, Genies finden Probleme."

      Suche jetzt einen talentierten jungen Mann, der die Umkreissuche unter Berücksichtigung des Fahrzeugtyps berechnet. Und bitte dran denken: Ein Tunnel kürzt Entfernungen wesentlich ab. Ein Eisenbahntunnel allerdings nicht für Autos und Eisenbahn- und Autotunnels nicht für Radfahrer.

      Und der Linienbus nimmt auf seinem Weg im Zickzackverkehr jedes Kaff links und rechts an der Strecke mit, ebenso nimmt er Radfahrer mit und fährt dann durch einen Tunnel. Wie groß ist die wirkliche Entfernung jetzt für den Radfahrer?

      Linuchs

      1. Meine Herren,

        Suche jetzt einen talentierten jungen Mann, der die Umkreissuche unter Berücksichtigung des Fahrzeugtyps berechnet. Und bitte dran denken: Ein Tunnel kürzt Entfernungen wesentlich ab. Ein Eisenbahntunnel allerdings nicht für Autos und Eisenbahn- und Autotunnels nicht für Radfahrer.

        Und der Linienbus nimmt auf seinem Weg im Zickzackverkehr jedes Kaff links und rechts an der Strecke mit, ebenso nimmt er Radfahrer mit und fährt dann durch einen Tunnel. Wie groß ist die wirkliche Entfernung jetzt für den Radfahrer?

        Das sind alles bekannte und gelöste Probleme der Routenplanung / Logistik. Das meiste davon kann die Google-Maps-API. Mit ÖPNV bin ich mir nicht sicher, das kann aber OpenStreeMap.

  3. Hallo,

    Nun möchte ich mit eine weitere Tabelle "standorte" erstellen um jedem user mehrere Standorte zu ermöglichen (Normalisierung).
    Die Tabelle "standorte" enthält sämtliche Geodaten

    Also muss die Distance jetzt FROM standorte ermittelt werden. Und den Standorten fügst du die user hinzu:

    ... AS Distance
    FROM standorte
    LEFT JOIN user
    ON user.user_id = standorte.user_id
    HAVING ...

    Jetzt besteht die Möglichkeit, dass du einen User mehrmals dabei hast, wenn mehrere seiner Standorte die Bedingung erfüllen.

    Linuchs

    1. Hallo,

      ...Und den Standorten fügst du die user hinzu:

      ...ON user.user_id = standorte.user_id...

      Jetzt besteht die Möglichkeit, dass du einen User mehrmals dabei hast, wenn mehrere seiner Standorte die Bedingung erfüllen.

      Und was ist, wenn 4 User in 1 WG wohnen?

      gruß
      peter