"Datenredundanz"?

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

  • "Datenredundanz"?

    Hallo allerseits,
    angenommen, ich habe 3 Haupttabellen: 1. Spiele, 2. Ort und 3. Jahresezeit.
    Deren Aufbau sieht wie folgt aus:

    Spiele
    --------
    idgame
    name
    beschreibung

    Ort
    ---------
    idlocation
    location

    Jahreszeit
    --------------
    idseason
    season

    Ein spiel kann mehrere Jahresezeiten und Orte haben und ein Ort kann mehrere Spiele haben und eine Jahreszeit kann mehrere Spiele haben.
    Somit benötige ich in diesem Beispiel zwei Zwischentabellen, da ich sonst eine n:n-Beziehung habe.
    Nehmen wir mal an, diese sehen so aus:

    game_season
    ------------------
    game_idgame | season_idseason
    1 | 1
    1 | 3

    game_location
    -------------------
    game_idgame | location_idlocation
    1 | 2
    1 | 4
    1 | 7

    Wenn ich nun hiervon ein SELECT-Statement mache, erhalte ich 6 Datensätze: 2 Jahreszeiten x 3 Orte = 6, obwohl nur ein Spiel vorhanden ist.
    Ich möchte aber nur ein Datensatz, nämlich nur das Spiel mit der ID 1. Wie realisiere ich dies am besten?
    Meine Abfrage sieht so aus:
    PHP-Code:
    SELECT game.idgamegame.name,  game.descriptionseason.seasonlocation.location
    FROM game
    seasonlocationgame_seasongame_location
    WHERE game
    .idgame game_season.game_idgame AND game.idgame game_location.game_idgame 
    Vielen Dank und Gruss

  • #2
    Code:
    SELECT idgame
    FROM game
    eine sinnvolle verknüpfung hast du nämlich mit deiner abfrage nicht vorgenommen

    Oder findet ein Spiel an allen Orten immer zu jeder Jahreszeit statt?

    Die Tabellen season und location verwendest du auch nicht in deinem WHERE, warum?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hallo,
      ja Entschuldige, ich habe die Abfrage aus der Applikation kopiert und verkleinert, da sie im richtigen Fall noch mehr Tabellen etc. beinhaltet,
      die aber das ganze nur unübersichtlicher machen
      Daher habe ich mich einfach auf diese 3 Tabellen plus die 2 Verknüpfungstabellen beschränkt.
      Korrekterweise müsste die Abfrage so aussehen:
      PHP-Code:
      SELECT game.idgamegame.name,  game.descriptionseason.seasonlocation.location
      FROM game
      seasonlocationgame_seasongame_location
      WHERE game
      .idgame game_season.game_idgame AND
      game.idgame game_location.game_idgame AND season.idseason game_season.season_idseason
      AND location.idlocation game_location.location_idlocation 
      Vielen Dank und Gruss

      Kommentar


      • #4
        Wenn du nur das Spiel haben willst, warum selektierst du dann so viele andere Spalten?

        Code:
        SELECT DISTINCT game.idgame, game.name,  game.description
        reicht aus

        Oder willst du die Daten nicht immer darstellen, sondern nur, wenn season oder location sich ändern?
        Dann such mal nach dem Stichwort "Gruppenwechsel"
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hallo,
          also ich möchte folgende Darstellung:

          Spielname: BeiSpiel

          Ort: Wasser
          Wiese
          Feld
          Schnee

          Jahreszeit: Herbst
          Winter

          Vielen Dank und Gruss

          Kommentar


          • #6
            Schön
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Jop
              Aber hast du eine Idee, wie ich das am besten Anstelle? Ist meine Datenbank- resp. Tabellenstruktur dafür ungeeignet? Oder muss ich eine spezielle Abfrage machen? Mache ich etwas falsch?
              Ich selektiere so viele andere Daten, da ich ja wissen möchte, welche Orte und welche Jahreszeiten das Spiel hat.

              Vielen Dank und Gruss
              Zuletzt geändert von OnTheRun; 21.04.2005, 14:20.

              Kommentar


              • #8
                Du suchst nicht nach "Gruppenwechsel"

                Wenn du das hast, sehen wir weiter
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Hallo,
                  ich habe nun nach Gruppenwechsel gesucht, aber blicke noch nicht ganz durch. Resp. bei dem eigentlichen Gruppenwechsel (das wäre ja bei mir z.B. bei einem neuen Ort oder einer neuen Jahreszeit) wird ja dann eine neue Tabelle ausgegeben. Doch dies möchte ich nicht, ich möchte alles in einer Tabelle.
                  Kannst du mir einen Denkanstoss geben?

                  Vielen Dank und Gruss

                  Kommentar

                  Lädt...
                  X