Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankdesign-Fragen

Einklappen

Neue Werbung 2019

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

  • Datenbankdesign-Fragen

    N'Abend,
    ich habe eine paar Fragen zum Datenbankdesign:

    1. Nehmen wir an ich hab eine Tabelle, dort kann man per Adminbereich einen Text eingeben, oder ein PDF hochladen. Nachher soll die Datei eingezeigt werden, wenn eine Datei hochgeladen wurde, ansonsten der Text.
    Wie soll meine Tabelle am besten aussehen ? Einfach 2 Spalten, einmal "datei" und "text", und dann nachsehen ob bei datei was drinnsteht ?

    2. Es gibt eine Liste mit Händler und Herstellern eines Produkt, diese sollen auch wieder in einer Tabelle gespeichert werden. Beide werden nachher in der gleichen Liste angezeigt, vor einem Händler steht aber "Händler" und einem Hersteller "Hersteller". Soll ich nur zu den anderen Infos einfach eine Spalte hinzufügen nach dem Motto "istHersteller" und dann eine 0 oder 1 eintragen und je nachdem weiß ich dann ob es ein Hersteller/Händler ist ?

    3. Wie speichere ich am besten Einstellungen ? Also eine große Anzahl von verschiedenen Werten verknüpft mit einem Benutzerkonto ? Eine Zeile pro Benutzerkonto (gaaaanz viele Spalten). Oder eine Zeile pro Einstellung (gaaanz viele Zeilen) ?

    4. Ich will, dass man bestimmte Infos kommentieren kann, z.B.: Produkte, Bilder, etc... Soll ich nun für jede eine eigene Tabelle machen, also kommentareProdukte, kommentareBilder ? Oder wäre es besser in den Kommentaren 2 zusätzliche Spalten zu machen, eine mit dem Wert zu welcher Kategorie (Produke, Bilder, ...) und eine auf welchen Datensatz der Kommentar sich bezieht ?

    So wie könnte man das Ganz am besten lösen ?

    Grüße
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

  • #2
    1. Ja kannst du so machen
    2. Kannst du auch so machen, solltest du später noch mehr "Typen" neben Händler und Hersteller haben könntest du auch eine weitere Tabelle machen mit den Typen und beim Produkt dann immer die Typ-ID.

    4. ich würd es so machen das ich eine Tabelle habe mit Kommentaren und ein-zwei Spalten die angeben wo drauf es sich bezieht.

    Kommentar


    • #3
      2. Kannst du auch so machen, solltest du später noch mehr "Typen" neben Händler und Hersteller haben könntest du auch eine weitere Tabelle machen mit den Typen und beim Produkt dann immer die Typ-ID.
      Ja, aber in dem Fall sind es wirklich nur 2 Typen, da kam mir eine eigene Tabelle ein bisschen "zu viel des Guten" vor.
      Signatur:
      PHP-Code:
      $s '0048656c6c6f20576f726c64';
      while(
      $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

      Kommentar


      • #4
        3. Wie speichere ich am besten Einstellungen ? Also eine große Anzahl von verschiedenen Werten verknüpft mit einem Benutzerkonto ? Eine Zeile pro Benutzerkonto (gaaaanz viele Spalten). Oder eine Zeile pro Einstellung (gaaanz viele Zeilen) ?
        Würde ich als eigenständige Tabelle machen, da du dort flexibel bist und nicht die Struktur der Tabelle ändern musst wenn neue Einstellungen hinzu kommen.

        Ja, aber in dem Fall sind es wirklich nur 2 Typen, da kam mir eine eigene Tabelle ein bisschen "zu viel des Guten" vor.
        Wird das immer so bleiben? Vielleicht kommt irgendwann nochmal etwas hinzu und dann musst du die Datenbank ändern. Arbeite gerade auch an einem Projekt wo viel statisch ist und ich viel umschreiben muss wenn eine Änderung eingebaut werden soll.

        Kommentar


        • #5
          Naja wenn du es schon per Spalte machst dann ist es nicht so schwer es auf eine Tabelle auszuweiten von daher wenn es eher unwahrscheinlich ist muss man nicht unbedingt von Anfang an eine eigene Tabelle dafür erstellen.

          Kommentar


          • #6
            Würde dann aber Typ als ENUM('Händler','Hersteller') empfehlen anstelle von istHersteller als BOOL
            [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
            [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

            Kommentar


            • #7
              Ok, soweit mal danke für dir Tipps, aber ich habe nocheinmal eine Frage:
              Nehmen wir an es finden Events statt, diese werden natürlich auch in einer Tabelle gespeichert. Nun gibt es zu den Events auch noch Bilder und Berichte (die dazu kommen sobald das Event gelaufen ist [davor macht ja wenig Sinn]), die jeweils eine eigene Tabelle haben, nun will ich die Bilder + Berichte mit dem Event verknüpfen. Wie macht man es am besten: Eine "Verknüpfer"-Tabelle (EventID, BilderID, BerichteID) oder in die Bilder + Berichte Tabelle eine zusätzliche Spalte hinzufügen, wo dann drinnsteht zu welchem Event das Ganze gehört ?

              Grüße
              Signatur:
              PHP-Code:
              $s '0048656c6c6f20576f726c64';
              while(
              $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

              Kommentar


              • #8
                Bericht dürfte doch sowieso schon mit Event verknüpft sein.

                Und wenn die Bilder zum Bericht gehören, dann reicht die Zuordnung Bericht-ID - Bildpfad/Name aus. (Ja, ich schreibe hier extra nicht Bild-ID, weil Bilder normalerweise im Filesystem besser aufgehoben sind, als in der Datenbank.)
                [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                Kommentar


                • #9
                  Zitat von ChrisB Beitrag anzeigen
                  Bericht dürfte doch sowieso schon mit Event verknüpft sein.

                  Und wenn die Bilder zum Bericht gehören, dann reicht die Zuordnung Bericht-ID - Bildpfad/Name aus. (Ja, ich schreibe hier extra nicht Bild-ID, weil Bilder normalerweise im Filesystem besser aufgehoben sind, als in der Datenbank.)
                  Aber in der Datenbank steht, dass es das Bild überhaupt gibt und welchen Namen es hat usw...

                  Nachtrag:
                  Noch mal eine Frage, nehmen wir an ich habe eine Tabelle wo 2 Personen in Verbindung mit einem Datum gespeichert werden sollen. Wäre es nun Schlimm wenn ich datum person1, person2 mache ? Was sicher es ist es werden IMMER (!) 2 Personen, oder eine Person sein. Wäre es in dem Fall sinvoller das ganze in 2 Tabellen zu teilen ?
                  Signatur:
                  PHP-Code:
                  $s '0048656c6c6f20576f726c64';
                  while(
                  $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                  Kommentar


                  • #10
                    Naja, wie sieht denn der Kontext zu dem Problem aus? Erst mal würde ich sagen, dass das so in Ordnung ist.
                    Wie würdest du das sonst in 2 Tabellen aufteilen wollen?
                    [URL]http://hallophp.de[/URL]

                    Kommentar

                    Lädt...
                    X