[SQL allgemein] Problem mit Datenbankdesign

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

  • [SQL allgemein] Problem mit Datenbankdesign

    Hi,

    ich bin gerade dabei das Datenbankdesign für ein Vokabeltrainer zu entwerfen.

    Dabei stoße ich auf ein Problem.

    Die Tabelle sieht vereinfacht in etwa so aus:


    vocables
    __________
    * id
    * vocable
    * translation


    Nun will ich auch Synonyme unterstützen, d.h. eine Vokabel kann mehrere Übersetzungen haben (und anders herum).

    Ich dachte da an folgende Tabelle:


    vocables_synonyms
    __________________
    * id
    * vocableId
    * translationId

    Damit müsste es möglich sein Synonyme zu realisieren. Allerdings erscheint es mir seltsam mit einem Datensatz zwei mal auf das gleiche Feld einer anderen Tabelle zu verweisen.

    Was haltet ihr davon? Gibt es andere, bessere Optionen?

    Ich danke für eure Meinungen.
    Zuletzt geändert von andru; 13.03.2008, 23:07.

  • #2
    Hallo,


    wieso 2 mal? Einmal reicht doch...

    vocables
    __________
    * id
    * vocable
    * translation

    vocables_synonyms
    __________________
    * id
    * vocableId
    * synonym


    Somit hast Du doch die vocables_synonyms.vocableId zum Vergleichen, dass reicht in meinen Augen gänzlich aus.



    Gruss..

    Kommentar


    • #3
      Mhmm, hätte da auch noch einen

      vocables_langX
      ____________
      * ID
      * word

      vocables_langY
      ____________
      * ID
      * word

      translations
      __________
      * ID
      * X_ID
      * Y_ID

      Geht bei 2 Sprachen denke ich mal ganz gut (insb. bidirektional).
      Allgemein wäre vielleicht folgendes treffender

      languages
      ________
      * ID
      * language

      vocables
      _____
      * ID
      * LANG_ID
      * word

      translations
      __________
      * ID
      * VOCABLE1_ID
      * VOCABLE2_ID

      Läuft immer darauf hinaus, eine Tabelle nur mit Worten zu füllen und dann die Übersetzungsbeziehung herzustellen.

      Kommentar


      • #4
        Würde die Variante von ZombieChe bevorzugen.

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Leider habe ich mein Problem wohl zu stark vereinfacht. Dann hol ich mal weiter aus:

          Die Vokabeln sollen nämlich in Lektionen eingeteilt werden. Eine Tabelle mit den Sprachen habe ich schon:

          languages
          ________
          * id
          * name

          lessons
          ______
          * id
          * sourceLanguageId ( 1. Sprache)
          * destinationLanguageId ( 2. Sprache)

          vocables
          ________
          id
          lessonId
          sourceVocable ( eigentliche Vokabel)
          destinationVocable ( Übersetzung)


          synonyms
          ________
          id
          vocableId ( Id der Vokabel)
          synonymVocableId ( Id des Synonyms)


          Leider sehe ich keinen Weg das Vorgeschlagene hier einzubringen. Vielleicht hänge ich auch schon zu lange davor ...

          Mit freundlichen Grüßen,

          Kommentar


          • #6
            languages
            ________
            * ID
            * language

            vocables
            _____
            * ID
            * LANG_ID
            * word
            * lesson_id <-- neu

            translations
            __________
            * ID
            * VOCABLE1_ID
            * VOCABLE2_ID

            Ich verstehe das Problem nicht.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar

            Lädt...
            X