Ankündigung

Einklappen
Keine Ankündigung bisher.

DB am eifnachsten umsetzen?

Einklappen

Neue Werbung 2019

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

  • DB am eifnachsten umsetzen?

    Hallo zusammen

    ich probiere gerade eine Datenbanklösung seit einiger Tage am ausprobieren. Finde aber nicht die richtige.

    Es sind jeweils 2 Tabellen, die zusammengehören.
    Bsp. A und B, dass habe ich bis jetzt über eine dritte A_B gelöst, um zu wissen weleche beiden IDs von A und B jeweils zusammengehören.

    Das Problem ist jetzt, wenn ich es erweiter möchte, ich kann natürlich Werte, die weder zu A oder B gehören trotzdem dort einfügen und es klappt.

    Ich möchte aber die jeweils gleichen Themengebiete in die Tabellen einordnen

    somit dürfen A-Werte nur in Tabelle A
    bzw. B-Wete nur in Tabelle B

    Wenn ich mir das aufzeichne habe ich nacher:

    Tabellen A,B,C,D,E, ...
    Zwischen Tabellen A_B, A_C, A_D, A_E, B_C, B_D, ...

    ---

    Also habe ich mir gedacht ich löse es durch Tabellen mit A, B, C usw. aber nur eine Tabelle, die alles verbindet. Das ich aber weiss aus welcher Tabelle es stammt, mache ich einen UniqueIdentifier, der irgendwo steht.

    Das heisst dieser Uniqueidentifier würde über alle Tabellen nur einmal vorhanden sein.

    ---

    Gibt es eventuell eine schönere Lösung aus MYSQL verbindung PHP sicht? Das sind nur meine Ideen, aber natürlich nicht solche die wirklich gut sind. Freue mich auf eure Antworten


  • #2
    Das Problem ist jetzt, wenn ich es erweiter möchte, ich kann natürlich Werte, die weder zu A oder B gehören trotzdem dort einfügen und es klappt.
    Kannst du das genauer erklären? Eventuell etwas konkreter werden als nur mit Beispieltabellen A und B zu beschreiben.

    Im Grunde wird dein Problem mit Sicherheit hier erklärt: Normalisierung (Datenbank) – Wikipedia .

    Der Aufbau
    Code:
    Tabellen A,B,C,D,E, ...
    Zwischen Tabellen A_B, A_C, A_D, A_E, B_C, B_D, ...
    ist nichts Seltenes, da die Erweiterbarkeit der Anwendung dadurch gegeben ist. Allerdings kommt es natürlich auch immer auf den konkreten Anwendungsfall an.

    Gruß
    http://hallophp.de

    Kommentar


    • #3
      Wenn theoretisch Inhalt aus jeder Tabelle von A B C D E... mit Inhalt aus jeder Tabelle verbunden sein kann wäre folgender Aufbau ggf. sinnvoll:

      table_content_to_content

      [id] [id_a] [id_b] [id_c]...

      id wird Primärschlüssel mit auto_increment. Diesen hast du auch in allen anderen Tabellen. Nun könnte ein Eintrag folgendermaßen aussehen:

      23, 10, null, 26

      D.h. Inhalt aus A mit ID 10 gehört zu Inhalt aus C mit ID 26.

      Im in Fall wo du nur 2 Tabellen hast löst man dies im Regelfall über eine Primär/Fremdschlüsselbeziehung. Das heißt du ahst in Tabelle B eine Spalte in welcher eine ID aus Tabelle A eingetragen wird um den Zusmamenhang herstellen zu können.
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        Zitat von Asipak Beitrag anzeigen
        Kannst du das genauer erklären? Eventuell etwas konkreter werden als nur mit Beispieltabellen A und B zu beschreiben.

        Im Grunde wird dein Problem mit Sicherheit hier erklärt: Normalisierung (Datenbank) – Wikipedia .

        Der Aufbau
        Code:
        Tabellen A,B,C,D,E, ...
        Zwischen Tabellen A_B, A_C, A_D, A_E, B_C, B_D, ...
        ist nichts Seltenes, da die Erweiterbarkeit der Anwendung dadurch gegeben ist. Allerdings kommt es natürlich auch immer auf den konkreten Anwendungsfall an.

        Gruß
        Danke schonmal

        Also ich möchte etwas aufbauen in der Art eines Dudens. Ich habe die Tabelle
        DDeutsch und DEnglisch dort habe ich Wörter drin stehen. Wenn ich die verbinden möchte klappt das ganz gut über DDeutsch_DEnglisch. Somit habe ich keine Redudanzen beim verbinden. Es kann aber sein das ein deutsches Wort 2 englische Bedeutungen hat, somit gibt es in DDeutsch_DEnglisch zwei Einträge einer ID.

        Ich möchte aber immer erweitern können. Darum stelle ich die Frage was mehr Sinn macht.

        Entweder pro 2 Sprachen eine Verbindungstabelle, wobei bei 5 Sprachen, wären es schon 5 Tabellen + 10 Tabellen, wenn ich mich nicht verrechnet habe.

        Oder 1 Verbindungstabelle und dann können alle Sprachen dört eingefügt werden. Egal ob Deutsch, Englisch, Russisch. Dazu bräuchte ich aber jeweils eine UNIQUE ID über alle Tabelle damit ich weiss, aus welcher Sprachtabelle das Wort stammt. Das wären dann nur 5 Tabellen + 1 Tabelle.

        Ich weiss jetzt aber nicht was geschickter ist, bzw. ihr Profis da machen würdet.




        Zitat von Dark Guardian Beitrag anzeigen
        Wenn theoretisch Inhalt aus jeder Tabelle von A B C D E... mit Inhalt aus jeder Tabelle verbunden sein kann wäre folgender Aufbau ggf. sinnvoll:

        table_content_to_content

        [id] [id_a] [id_b] [id_c]...

        id wird Primärschlüssel mit auto_increment. Diesen hast du auch in allen anderen Tabellen. Nun könnte ein Eintrag folgendermaßen aussehen:

        23, 10, null, 26

        D.h. Inhalt aus A mit ID 10 gehört zu Inhalt aus C mit ID 26.

        Im in Fall wo du nur 2 Tabellen hast löst man dies im Regelfall über eine Primär/Fremdschlüsselbeziehung. Das heißt du ahst in Tabelle B eine Spalte in welcher eine ID aus Tabelle A eingetragen wird um den Zusmamenhang herstellen zu können.
        Ok, das tänt auch logisch, ich dachte eben es gäbe eine Begrenzung Anzahl Felder - oder ist das unbeschränkt?

        Und macht es auch kein Problem wenn NULL Felder drin stehen? Nehmen die keine grosse Belastung auf?

        Grüsse

        Kommentar


        • #5
          Zitat von nimmme01 Beitrag anzeigen
          Ok, das tänt auch logisch, ich dachte eben es gäbe eine Begrenzung Anzahl Felder - oder ist das unbeschränkt?
          Wie viele Sprachen willst du denn miteinander verknüpfen? o_O

          NULL ist NULL also Nichts auch nicht 0. Warum sollte das eine große Belastung sein?
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Zitat von Dark Guardian Beitrag anzeigen
            Wie viele Sprachen willst du denn miteinander verknüpfen? o_O

            NULL ist NULL also Nichts auch nicht 0. Warum sollte das eine große Belastung sein?
            Das weiss ich jetzt noch nicht genau. Möchte aber jetzt schon wissen was die sinnvollste Lösung ist, wenn man ausbauen möchte.

            Gibt es denn eine Limite?

            Kommentar


            • #7
              Was soll denn der Zweck der Verknüpfung sein? Eine Art Übersetzung oder was?
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Du hast eine Tabelle Sprachen, in denen du sämtliche Sprachen abspeicherst. In der Tabelle Vokabeln speicherst du deine Wörter und weist über eine Sprachen-ID die jeweilige Sprache der Vokabel zu. Jetzt kannst du eine allgemeine Tabelle für deine Übersetzungen anlegen, in denen die IDs der entsprechenden Vokabeln stehen. In welcher Sprache das jeweilige Wort vorkommt, erfährst du wieder über die Tabelle Vokabeln.

                So hört sich das für mich erstmal brauchbar an.
                http://hallophp.de

                Kommentar


                • #9
                  Zitat von nimmme01 Beitrag anzeigen
                  Das weiss ich jetzt noch nicht genau. Möchte aber jetzt schon wissen was die sinnvollste Lösung ist, wenn man ausbauen möchte.

                  Gibt es denn eine Limite?
                  Ich weiss es jetzt nicht genau aber Google findet unter Anderem folgendes:

                  MyISAM: keine Einschränkung der Spaltenzahl, aber alle Spalten (außer
                  BLOB/TEXT) zusammen dürfen max. 64KB groß werden.

                  InnoDB: 1000 Spalten, Summe aller Spalten (außer BLOB/TEXT/VARCHAR)
                  maximal 8KB.
                  Zitat von Asipak Beitrag anzeigen
                  Du hast eine Tabelle Sprachen, in denen du sämtliche Sprachen abspeicherst. In der Tabelle Vokabeln speicherst du deine Wörter und weist über eine Sprachen-ID die jeweilige Sprache der Vokabel zu. Jetzt kannst du eine allgemeine Tabelle für deine Übersetzungen anlegen, in denen die IDs der entsprechenden Vokabeln stehen. In welcher Sprache das jeweilige Wort vorkommt, erfährst du wieder über die Tabelle Vokabeln.

                  So hört sich das für mich erstmal brauchbar an.
                  Jetzt wo man weiss was realisiert werden soll ist das noch die sinnvollste Lösung im Hinblick auf Normalisierung.
                  "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                  Kommentar


                  • #10
                    Zitat von Asipak Beitrag anzeigen
                    Du hast eine Tabelle Sprachen, in denen du sämtliche Sprachen abspeicherst. In der Tabelle Vokabeln speicherst du deine Wörter und weist über eine Sprachen-ID die jeweilige Sprache der Vokabel zu. Jetzt kannst du eine allgemeine Tabelle für deine Übersetzungen anlegen, in denen die IDs der entsprechenden Vokabeln stehen. In welcher Sprache das jeweilige Wort vorkommt, erfährst du wieder über die Tabelle Vokabeln.

                    So hört sich das für mich erstmal brauchbar an.
                    Vielen Dank!!!

                    Deine Idee gefällt mir sehr gut. Ich habe jetzt noch eine andere Frage dazu. Wie sieht es bei der Vokabeltabelle mit der Kollation aus?

                    Standart ist bei mir lati_swedish_ci, wobei ich schon mehere Male gemerkt habe, dass ä, ö , ü nicht richtig angezeigt werden. Welche Zeichen sind dort alles erlaubt? Zeichen der chinesischen Sprache werden zum Beispiel als Fragezeichen dargestellt.

                    Kann ich diese Sparte problemlos auf utf8_ umstellen? Und was ist der Unterschied zwischen den vielen utf8_Sprache? Welche soll ich nehmen?



                    Danke schonmals

                    Kommentar

                    Lädt...
                    X