Suche nach Leuten mit gleichen Hobbies

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suche nach Leuten mit gleichen Hobbies

    Hallo,

    in einer Textarea gibt der User alle seine Hobbies getrennt mit Komma ein und es wird in einem TEXT-Feld gespeichert.

    Ich möchte nun anzeigen lassen, welche User gleiche Hobbies haben.

    Wäre es dazu nicht sinnvoll, die Hobbies mittels explode(",",$hobbies) zu splitten und einzeln in eine Tabelle zu schreiben?

    Tabelle "hobbies":

    id;name_des_hobbies

    1;bowlen
    2;tv
    3;kino
    ...

    Tabelle "hobbies_zuordnungen":

    userid;hobbyid

    1;3
    1;2
    2;1
    ...

    User 1 steht als auf Kino und TV, User 2 auf Bowlen usw.

    Wäre dieser Aufbau "sinnvoll" oder gibt's noch eine elegantere Lösung?

    Wie frägt man dann eigentlich oben ab, wenn man angenommen User 1 ist und a) andere User mit gleichen Hobbies sehen will und b) die Sortierung nach Übereinstimmungen erfolgen soll und ev. c) auch die übereinstimmenden Hobbies mit angezeigt werden sollen?

    Wird sicher in einem Query schwer hm?

  • #2
    1. Dein Ansatz ist sinnvoll
    2. ein query könnte so sein

    SELECT user FROM tabelle_mit_user a,hobbies_zuordnungen b
    WHERE a.user_id=b.user_id
    AND b.hobbyid IN(SELECT id from hobbies_zuordnungen where userid=meineuserid)
    AND b.userid != meineuserid
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Freitexteingabe ist für sowas ziemlich ungeeignet, weil ungenau.
      Bowling, Bohling, Bouling, Boling, Bowlen, bowlen gehen, Bowling spielen, ...

      Kommentar


      • #4
        Ich weiß, aber willst Du 10000 Hobbies in Dropdowns vorgeben?

        Das da natürlich nicht alles erkannt wird ist klar...

        Kommentar


        • #5
          Autocompletion

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Freitexteingabe ist für sowas ziemlich ungeeignet, weil ungenau.
            Bowling, Bohling, Bouling, Boling, Bowlen, bowlen gehen, Bowling spielen, ...
            Xing funktioniert doch auch...

            Kommentar


            • #7
              Original geschrieben von onemorenerd
              Freitexteingabe ist für sowas ziemlich ungeeignet, weil ungenau.
              Bowling, Bohling, Bouling, Boling, Bowlen, bowlen gehen, Bowling spielen, ...
              Da kann man doch mit soundex und Kameraden noch etwas reißen bzw. dem Benutzer Vorschläge machen.

              Kommentar


              • #8
                Weiß denn jemand ob das Matching bei Xing ausschließlich mit den originalen Eingaben gemacht wird? Kann mal einer "Bohlen" statt "Bowling" eingeben?

                Ich habe die Erfahrung gemacht, dass man die Freitexteingabe irgendwie einschränken muss, besonders wenn die Userzahl klein oder die möglichen Eingaben sehr verschieden oder einfach schwierig zu beschreiben sind. Ein Feld für Hobbies auf einer 1k-Teenies Plattform geht vielleicht ohne Weiteres, aber das Lieblingsreiseziel auf einem internationalen Portal oder das Feld "Interessen" bei Amazon liefert eine solche Bandbreite an Eingaben, dass die Anzahl der Matches schnell unglaubwürdig gering wird, wenn man nicht mit Autocompletion, Stemming + Soundex oder sonstwie nachhilft.

                In vorliegenden Fall soll der User auch noch mehrere Eingaben in einem Feld machen und selbst auf die korrekte Trennung achten.


                Man schaue sich mal die Eingabe der Tags/Schlagwörter bei Drupal mit und ohne Javascript an ....

                Kommentar

                Lädt...
                X