Announcement

Collapse
No announcement yet.

M:N Beziehungsproblem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • M:N Beziehungsproblem

    Hallo Leute!

    ich hab eine m:n Beziehung!

    so sieht meine struktur aus:
    <pre>
    tabelle1
    index_tabelle1
    </pre><pre>
    tabelle2
    index_tabelle2
    </pre><pre>
    hilfstabelle
    index_tabelle1
    index_tabelle2
    </pre>
    das klappt alles wunderbar, NUR .....

    wie kann ich der tabelle sagen das sie keine doppelten einträge machen darf?

    <pre>
    index_tabelle1 index_tabelle2
    2 1
    3 1 //einmal okey
    3 1 //doppelt!!!
    5 1
    </pre>
    er darf ruhig das anzeigen
    <pre>
    2 1
    3 1
    3 2
    5 1
    </pre>
    eindeutiger index hilft in diesem fall nicht!
    was kann ich sonst tun??

    BINE

  • #2
    Hallo,

    wenn ein <b>zusammengesetzter</b> UNIQUE INDEX für beide Spalten der Tabelle definiert wird, können nur eindeutige Datensätze gespeichert werden

    Comment


    • #3
      danke das hilft schon weiter aber wie mach ich das?

      BIN

      Comment


      • #4
        Hallo,

        wenn ich mich richtig erinnere, geht es um ACCESS-Datenbanken? Wenn ja, wird das Ganze in der ACCESS2000-Hilfe auf der Seite "<i>Verhindern der Eingabe von Duplikatwerten in einer Felderkombination</i>" beschrieben. Die folgende Anleitung stammt von dieser Hilfeseite:

        <i>
        1. Öffnen Sie die Tabelle in der Entwurfsansicht.<br>
        2. Erstellen Sie einen zusammengesetzten Index unter Verwendung der Felder, für die Sie das Eingeben von Duplikatwerten verhindern möchten. Lassen Sie das Fenster Indizes nach dem Definieren des Indexes geöffnet. <br>
        3. Klicken Sie im oberen Teil des Fenster Indizes auf den neuen Indexnamen. <br>
        4. Klicken Sie im unteren Teil des Fenster Indizes auf das Einstellungsfeld für die Eigenschaft Eindeutig, und wählen Sie dann Ja.</i&gt

        Comment


        • #5
          ich schau mal ob ich das zusammenbringen

          ja dein erinnerungsvermögen hat dich nicht getäuscht ich verwende Access2000

          BIN

          Comment


          • #6
            hmm Andreas!

            jetzt kann der tabelle1 nur einen ds der tabelle tabelle2 zuordnen (über die hilstabelle halt!

            also kann ich nur
            <pre>
            1 4
            2 3
            3 2
            4 1
            </pre>
            machen aber nicht
            <pre>
            1 2
            1 3
            1 4
            2 6
            2 1
            3 6
            3 7
            </pre>
            machen

            BINE ( du hast mir in einem Beitrag mal erklärt wie ich das mit der m:n beziehung schaffe

            Comment


            • #7
              der index verhindert wieder die eingabe von n:m beziehung (((

              BIN

              Comment


              • #8
                <br>Hi Bine,
                <br>
                <br>-öffne bitte deine Hilfstabelle im Entwurfsmodus
                <br>-stelle bei den beiden Feldern die Eigenschaft Indiziert auf "Ja (Duplikate möglich)"
                <br>-nun markiere die beiden Felder und drücke auf den Schlüssel in der Symbolleiste (Primärschlüssel festlegen)
                <br>-nun ist die Kombination aus Feld eins und Feld zwei Primärschlüssel und somit einzigartig
                <br>
                <br>MfG
                <br>P

                Comment


                • #9
                  index (vom andreas Kosch= wieder löschen?

                  Comment


                  • #10
                    <br>Ja den Index von A.Kosch bitte löschen.
                    <br>Wenn die Kombination der beiden Felder Primärschlüssel ist, so werden diese Felder auch indiziert.
                    <br>
                    <br>MfG
                    <br>P

                    Comment


                    • #11
                      DANKEEEEEEEEEEEEEEEEEEEEEEEEEE )))))))))) geht ))))

                      *freuuuu

                      Comment


                      • #12
                        Hallo,

                        bei der n:m-Beziehung werden die Primärschlüssel der beiden Tabellen A und B in einer dritten Tabelle C gespeichert. Diese dritte Tabelle C ist also eine Hilfstabelle, über die die zusammengehörenden Datensätze verwaltet werden.

                        Das folgende Beispiel aus einer InterBase 6-Datenbank verdeutlicht das Prinzip. Die Tabelle <i>Manuskript</i> enthält alle die Artikel, die von Autoren für die Veröffentlichung in einer Fachzeitschrift eingereicht werden.
                        <pre>
                        CREATE TABLE Manuskript (
                        ManuskriptID TID,
                        AutorID TID,
                        ....
                        Arbeitstitel TTitel);
                        </pre>
                        Es gibt eine weitere Tabelle <i>Thema</i>, in der bestimmte Fachbegriffe wie Delphi, Datenbanken, InterBase, ACCESS etc. gespeichert werden. Jeder Fachbegriff hat einen eindeutiger Kennzeicher in Form des Primärschlüssels <i>ThemaID</i>.
                        <pre>
                        CREATE TABLE Thema (
                        ThemaID TID,
                        Begriff VARCHAR(20));
                        </pre>
                        Wenn nun zu jedem Datensatz in der Tabelle <i>Manuskript</i> beliebig viele Begriffe aus der Tabelle <i>Thema</i> zugeordnet werden sollen, wird eine dritte Hilfstabelle benötigt. Die sieht nun so aus:
                        <pre>
                        CREATE TABLE Themen (
                        ThemenID TID,
                        ThemaID TID,
                        ManuskriptID TID);
                        </pre>
                        Das erste Feld <i>ThemenID</i> ist der Primärschlüssel der Tabelle, während die beiden anderen Spalten die Verbindung zwischen den zusammengehörenden Datensätzen aus den Tabellen <i>Manuskript</i> und <i>Thema</i> herstellen. <br>
                        Wenn nun ein UNIQUE INDEX auf die Spalten ThemaID+ManuskriptID gelegt wird, so kann ein bestimmter Thema-Begriff nur einmal einem bestimmten Manuskript-Datensatz zugeordnet werden

                        Comment


                        • #13
                          <br>@A.Kosch:
                          <br>aber ich glaube einen "gemeinsamen Index" über zwei Felder kann man nicht im Entwurfsmodus von Access erzeugen. Es sei denn man erzeugt einen Primärschlüssel über die gewünschten Felder. Oder?
                          <br>Erzeugt man einen Index in Access, so ist jedes Feld für sich indiziert aber eine Kombination kann man nicht erstellen. (Zumindest weiß ich nicht wie).
                          <br>
                          <br>MfG
                          <br>P

                          Comment


                          • #14
                            Hallo,

                            es geht in ACCESS, wenn man sich exakt an die Beschreibung aus der Hilfe hält. Im aufgerufenen Index-Dialog darf man in der linken Spalte nur einen Indexnamen eintragen, aber rechts in mehreren (!) Spalten die jeweiligen Feldnamen auswählen. Dann darf der Dialog nicht geschlossen werden, um die Checkbox "Eindeutig" ankreuzen zu können :-

                            Comment


                            • #15
                              <br>Danke!
                              <br>
                              <br>funktioniert
                              <br>
                              <br>mfg
                              <br>P

                              Comment

                              Working...
                              X