Ankündigung

Einklappen
Keine Ankündigung bisher.

Schnellste und platzsparende Lösung

Einklappen

Neue Werbung 2019

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

  • Schnellste und platzsparende Lösung

    Hallo und grüezi

    Ich weiss nicht recht wie ich meine Daten speichern soll um einen schnellen, einfachen Zugriff zu haben.

    Es sind rund 8000 Briefmarken und vorläufig mal ca. 100 Sammler.
    Nun möchte ich für jeden Sammler im SQL speichern ob er eine Marke hat (5 Varianten gestempelt, ungestempelt, postfrisch etc).
    Die Variante ist nur 1/0 oder Ja/nein.

    Variante 1:
    Sammler, Marken-id, Var1,Var2,Var3,Var4,Var5
    Sammler, Marken-id, Var1,Var2,Var3,Var4,Var5
    so gibt es zirka 800'000 (8'000x100) Einträge - ich könnte die SQL-Abfrage über Sammler und Marken-id machen und erhalte die 5 Varianten

    Variante 2:
    Marken-id, String mit allen Sammler (ca. 100), Var1,Var2,Var3,Var4,Var5
    so müsste ich im String den Sammler suchen - und bekomme wenn er vorkommt mit Marken-id und Sammler die Var1-5
    so wären es nur ca. 8000 Einträge mit einem längeren Feld (Sammler) - dafür muss ist den String zerlegen.

    oder gibt es sonst noch eine bessere Lösung?

    Sonnige Grüsse aus dem Süden. Nebbiolo


  • #2
    MOD: Verschoben von PHP-Einsteiger
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Von den 5 Varianten trifft nur eine zu oder evtl. auch mehrere?

      Kommentar


      • #4
        @jonas3344
        von den 5 Varianten können 3 zutreffen: habe gestempelt - ja oder nein / ungestempelt ja/nein / reserveliste =ja

        Kommentar


        • #5
          Zitat von nebbiolo Beitrag anzeigen
          Ich weiss nicht recht wie ich meine Daten speichern soll um einen schnellen, einfachen Zugriff zu haben.
          Das kommt drauf an wie du die Daten benutzten willst. Du hast eine n:m Beziehung, technisch sauber wäre hier ein Lösung mit 3 Tabellen und der Zustand wird in der "Beziehungstabelle" gespeichert.

          Sammler (SammlerId, Name, etc)
          Marken (MarkenId, Name, etc)
          SammlerMarke (SammlerId, MarkenId, Zustand)

          Anwendungstechnich kann es aber auch viel einfacher sein, dass wie in deiner Variante 1 zu machen.

          Kommentar


          • #6
            vielen Dank erc

            Sammler und Marken bestehen bereits - es geht nur noch um die "SammlerMarke" - wenn ich das richtig interpretiere wäre das Variante 1

            Kommentar


            • #7
              Ja Variante 1.

              Eine Marke, welche gestempelt ist kann aber nicht gleichzeitig auch noch ungestempelt sein, oder?
              Aus meinem Verständnis raus:
              Marke (int) | Sammler (int) | Gestempelt (int, 0 oder 1) | reserveliste (int, 0 oder 1)

              Kommentar


              • #8
                Zitat von nebbiolo Beitrag anzeigen
                vielen Dank erc

                Sammler und Marken bestehen bereits - es geht nur noch um die "SammlerMarke" - wenn ich das richtig interpretiere wäre das Variante 1
                Nein, der Zustand wäre nicht in Spalten, sondern Zeilen organisiert.

                Wenn "Hans" (id = hans) 5 mal die "2020 Deutschepost Blumenbreifmarke" (id = mark_343) gestemplet hat und einmal neu. Dann legst du zwei Datensätze an:

                Code:
                "hans", "mark_343", "gestemplet"
                "hans", "mark_343", "neu"
                statt
                Code:
                "hans", "mark_343", "ja", "ja", "nein", "nein", "nein"

                Kommentar


                • #9
                  5 mal die "2020 Deutschepost Blumenbreifmarke" (id = mark_343) gestemplet hat und einmal neu. ... Dann legst du zwei Datensätze an:
                  Und die Spalte "Anzahl" wäre dann noch anzulegen?!
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Zitat von hausl Beitrag anzeigen
                    Und die Spalte "Anzahl" wäre dann noch anzulegen?!
                    Das Thema Breifmarkensammeln ist nicht so meins Aber ja, auf dem Trichter bin ich auch gekommen. Wollte dann aber nicht mehr dazudichten als nötig. Das Datenmodell in Normalform eröffnet natürlich eine breite Palette weitere Optionen. Die Anzahl, ein Kommentar pro Briefmark, ein Preis, ein Foto etc. (dazu müsste dann noch ein surrograte key in der zuordnungstabelle eingefügt werden)
                    Wie aber Eingangs geschreiben, würde ich das vom Anwendungszweck abhängig machen. Wenn ich realtiv sicher bin das ich das alles nicht brauchen werde, kann ich das auch wie in Variante 1 von nebbiolo breit ziehen und fertig. Das reduziert die Logik im Code erheblich.

                    Kommentar


                    • #11
                      OK, vielen Dank an alle für die Ideen ... das mit der Anzahl statt ja/nein ist ein guter Tipp den ich einbinden werde ...

                      Kommentar

                      Lädt...
                      X