Ilja: DB Normalisieren und eine ID in 3 Tabellen speichern

Beitrag lesen

yo,

Jetzt wird ja 'PRIMARY KEY  (interpret\_id)' wom Server vergeben, wie kann ich diesen
key in die anderen Tabellen übernehmen?

mein tipp ist, jede tabelle hat ihren eigenen künstlichen schlüssel, es liegt also keine fachlickeit im schlüssel, sondern dient nur "technischen" zwecken. und dbms bieten immer eine funktionalität, dir die zuletzt benutzte id zu geben, die das system verwendet hat. ich muss bei mysql raten (zu faul selbst nachzuschauen), sollte eine funktion wie last_insert_id sein.

diese funktion ist auch session abhängig, dass heisst wenn mehrere benutzer gleichzeitig neue datensätze einfügen, bekommst du nur den von dir benutzte letzte id zurück und nicht die eines anderen users.

kurz noch ein wort zu deinem design, wenn ich das auf den ersten blick richtig verstanden habe, dann solltes du folgende entitäten haben:

  • Interpreter
  • Song
  • Album

für diese drei entitäten musst du noch die richtgen attribute hinzufügen, zum beispiel titel und text in der song-tabelle, vorname und nachname in der interpreter tabelle, albumname in der album tabelle, etc. achter aber darauf, dass du jeweils einen kunstlichen pk benutzt.

dann bringst du die drei entitäten in beziehung miteinander. zum beispiel könnte man es so modellieren, dass jeder song nur einen interpreter hat, aber ein interpreter kann mehrere songs haben. das wäre dann 1:n und du kannst den interpreter-fremdschlüssel direkt in die tabelle song ziehen.

oder aber ein song kann auch mehrere interpreter haben, zum beispiel weil zwei oder drei interpreter gemeinsam einen song aufnehmen, dann hast du eine n:m beziehung zwischen den beiden entitäten, die du mit einer beziehungstabelle auflösen musst, wo jeweils der fremdschlüssel von der entität interpreter drinne ist und von song-entität. diese überlegung der art der beziehung machst du für alle entitäten.

Ilja

0 46

DB Normalisieren und eine ID in 3 Tabellen speichern

Engin
  • datenbank
  1. 0
    Ilja
    1. 0

      DB Normalisieren Ok. 3 INSERT INTO ausführen Problem

      Engin
      1. 0
        Struppi
        1. 0
          Engin
          1. 0
            ChrisB
            1. 0

              3 INSERT INTO ausführen Problem auch OK.

              Engin
              1. 0
                ChrisB
                1. 0

                  LAST_INSERT_ID() bzw. mysql_insert_id() wie richtig verwenden?

                  Engin
                  1. 0
                    ChrisB
                    1. 0
                      Engin
                    2. 0
                      EKKi
                      1. 0
                        Sven Rautenberg
                        1. 0
                          EKKi
                          1. 0
                            Sven Rautenberg
                            1. 0
                              EKKi
                  2. 0
                    Struppi
                    1. 0
                      Engin
                      1. 0
                        ChrisB
                        1. 0
                          Engin
                          1. 0
                            ChrisB
                            1. 0

                              Danke!

                              Engin
                      2. 0
                        Struppi
  2. 0

    Noch eine frage zur DB normailiserung

    Engin
    1. 0
      ChrisB
      1. 0
        Engin
        1. 0
          EKKi
          1. 0
            Engin
            1. 0
              EKKi
              1. 0
                Engin
                1. 0
                  EKKi
                  1. 0
                    Engin
                    1. 0
                      EKKi
                      1. 0
                        Engin
                        1. 0
                          EKKi
                          1. 0
                            Engin
                  2. 0
                    ChrisB
                    1. 0

                      Danke! DB normailiserung schreitet voran

                      Engin
  3. 0

    PHP $_GET und sonderzeichen <>\

    Engin
    • php
    1. 0
      dedlfix
      1. 0
        Engin
        1. 0
          dedlfix
          1. 0
            Engin
            1. 0
              EKKi
              1. 0

                PHP $_GET auch gelöst

                Engin
    2. 0
      EKKi