Tags in Datenbank speichern und dann bestimmte Tags ausgeben

  • Tags in Datenbank speichern und dann bestimmte Tags ausgeben

    Also ich möchte per Formular Tags in der Datenbank speichern. Dann möchte ich, wenn ich den Eintrag ausgebe, dass dort ebenfalls Einträge gezeigt werden, die dieselben Tags wie eben dieser Eintrag haben.

    Beispiel:

    Eintrag 1 (tagA, tagB, tagC)
    Eintrag 2 (tagA)
    Eintrag 3 (tagD, tagE, tagF)


    Eintrag 1 wird ausgegeben:

    Eintrag 1

    Ähmliche Einträge
    Eintrag 2


    Wie kriege ich sowas hin?

    Danke schonmal.
  • Kommt drauf an, wie groß dein Projekt ist. Wenn es salopp gesagt nur um 10 Einträge geht, füg direkt in der Tabelle ein Feld für die Tags ein, kommasepariert und gut ist.
    Wenn du das ganze "richtig" machen willst legst du dir eine Tabelle Tags an in die du die Tags mit einer ID speicherst (da kann man dann auch Counter einfügen, wie oft jeder Tag genutzt wird, etc) und eine Pivot-Tabelle um die Tags und deine Einträge zu verknüpfen (wenn gewünscht kann man auch noch ein zusätzliches Feld erstellen um z.B. die Relevanz des Tags für den Eintrag festzulegen, usw).

    Ein kleines Bsp, damit klar wird was ich meine:

    Tabelle entry:
    id | name
    --------------
    1 | Eintrag 1
    2 | Eintrag 2

    Tabelle tag:
    id | tag
    -------------
    1 | grün
    2 | Baum

    Tabelle tag_entry
    tag_id | entry_id
    ------------
    1 | 1
    2 | 2
    1 | 1

    Aus diesem Beispiel hätte Eintrag 1 die Tags "grün" und "Baum" und Eintrag 2 nur "Baum"