Suchfunktion auf fremden Seiten benutzen

  • Ich habe eine Idee, weiß aber nicht ob diese realisierbar bzw. legal ist.

    Folgendes: Angenommen ich wollte eine Seite machen auf der man Videos gleichzeitig auf verschiedenen Seiten suchen kann.
    Also Nutzer sucht ein bestimmtes Video. Dazu soller auf meine Seite gehen, in ein Suchfenster seine Begriffe eingeben und er bekommt dann bei mir z.B. jeweils die besten Treffer von Myvideo, Youtube, Google Videosuche, ... angezeigt.

    Ist soetwas überhaupt realisierbar? Kann ich die bei mir eingegebenen Daten an youtube senden und dort dann suchen lassen?
    Von mir aus kann sie die Seite dann auch gerne öffnen, die Ergebnisse müssen nicht unbedingt bei mir angezeigt werden. wäre aber natürlich schöner, aber auch legal?

    Was meint ihr dazu?

  • Das geht über php ohne weiteres. Währen meines Wissen auch legal. Hätte aber den Nachteil das deine Suche mindestens so lange dauert wie die Summe der Laufzeiten aller Suchen. Also sehr lange.

    Was willst den damit überhaupt aufziehen?

  • ok, stimmt, ich werde das in den nächsten Tagen einfach mal ausprobieren.
    Ich stell mir aber immer noch die Frage ob das legal ist, schließlich ist es niht erlaubt, fremde Seiten per frames auf seiner eigenen Seite einzubinden, oder?

    EDIT: Warum soll die Suche sehr lange dauern? Die Suchen werden ja vermutlich auf unterschiedlichen Servern durchgeführt, das heißt die Suche dauert so lange wie die längste Suche dauert.

  • Wenn ich sowas machen würde, sehe ich noch ein anderes Problem:

    Wie kann ich die Suchergebnisse in der eigenen Seite von allen anzeigen lassen?

  • Dann mach ich hier mal weiter mit Fragen zum Datenbanklayout:
    - was ist besser? 1 Datenbank für alle "Videos" oder je 1 Datenbank für jede Kategorie von "Videos"?
    - die Datenbank soll eine Bewertung enthalten (vermutlich auch Anzahl der Bertungen), Autor, Name der Datei
    - wie realisiere ich die Suchfuntkion am besten? eine weitere Datenbankspalte, wo ich dann durch komma getrennt mögliche Beschreibungsbegriffe reintue, nach denen ich dann suchen kann?

  • je 1 Datenbank?!
    Entweder du verwechselst da den Begriff Datenbank und Tabelle oder du bist wahnsinnig :)
    Es ist ausch Schwachsinn für jede Kategorie eine Tabelle anzulegen.
    Du brauchst folgende Tabellen:

    - Videos
    - Kategorien
    - Bewertungen

    Am besten verteilst du Videos "Tags", nach denen man suchen kann.
    Wenn du auf Normalisierung wertlegen willst, brauchst du dafür zwei zusätzliche Tabelle, da es eine n:n-Beziehung ist (mehrere Tags können mehreren Videos zugewiesen werden, mehrere Videos können die gleichen Tags haben)

    - Tags
    - Beziehung zwischen Tags und Videos


    Wenn du aber auf Performance wertlegst, brauchst du nur eine zusätzliche Tabelle: Tags. So wird eine 1:n-Beziehung hergestellt, da man für jedes Video die Tags definiert und nicht wie vorher aus einem Pool wählt
    Dieser verpasst du dann einen Fremdschlüssel der Video-IDs und kannst die Tags z.B. mit Semikolon oder ähnlichem trennen.
    Das erspart dir mindestens einen Join

  • moment, was ist genau eine Tabelle?

    ich hab das jetzt nicht alles verstanden.
    Ich dachte ich mach eine Datenbank, die so aussieht

    Code
    Name  |  Summe Bewertungen | Anzahl Bewertungen | Autor | Kategorie | Suchbegriffe
    video1 |       256         |     50              | ich     | sonstiges | Begriff1, Begriff2, ...
    video2 |         12       |    3                 | der    | blabla   | Begriff3, Begriff4, ...

    ist das eine Tabelle oder Datenbank? Gibt es einen Fachausdruck für die Zeilen und Spalten?
    nur, dass wir uns richtig verstehen.

  • Das was du gerade darstellst ist eine Tabelle.
    Eine Datenbank besteht aus mehreren Tabellen, sie umfasst diese also.

    Ich kenne keinen Fachbegriff für die Spalten oder Zeilen.

  • Also.
    Es wurde doch schon das Thema Normalisierung angesprochen - das ist ein Konzept eine gute strukturierte Datenbank zu halten.
    Desweiteren, wenn du eine Suche nach Tags startest, müsstest du so für jeden einzelnen Datensatz die Zeichenketten exploden (am Komma).
    Das ist aufwendig und geht viel einfacher.
    Das beste ist vermutlich dann doch die erstgenannte Lösung, da du so nach Tags einfach ordnen kannst.
    Man speichert die Tags einzeln und speichert dazu die Beziehung zwischen den Tags und den Videos (also welche Videos welche Tags haben).
    Das sieht ungefähr folgendermaßen aus:

    Tabelle rel_video_tag

    Code
    video_id         tag_id
    1         5
    1         6
    1        25
    2         5
    2         8


    Es werden also Fremdschlüssel aus den Tabellen "video" und "tags" gespeichert.

    Wenn man dann also nach einem Tag (oder mehreren) sucht, sucht man in dieser Tabelle nach der passenden Video-ID.
    Ist eine gefunden, liefert man die Ergebnisse dieses Videos.