none
Übertrag in Mehrwertfeld

    Frage

  • Hallo allerseits!

    Kennt jemand von Euch die Möglichkeit in Access2013 die Werte von mehreren Datenfelder in ein gemeinsames Mehrwertfeld zu übertragen?
    Kann es sein, dass ich für diese Aufgabe zwingend eine konvetionelle m:n Beziehung erstellen muss?

    Grundsätzlich funktioniert meine Datenbank mit der "gekröpften" m:n Beziehung mit dem Mehrwertfeld. Doch die bestehenden Daten, welche ich dort einfügen möchte, befinden sich noch in eigenen Feldern.

    Danke für Eure Inputs!

    Grüsse

    Fritzli07

    Dienstag, 25. März 2014 22:25

Alle Antworten

  • Hallo Fritzli07

    Grundsätzlich gibt es in gutem relatinalem Datenbank Design keine Mehrwert Felder. Mit solchen Feldern hast Du später nur Ärger, weil Du Dich auf einzelne Werte innerhalb nicht einfach beziehen kannst, ohne diese wieder auseinander zu nehmen.

    Eine M:N Beziehung ist auch keine Lösung. Diese sollte in eine 1:M und N:1 Beziehung aufgelöst werden

    Beispiel Lieferanten und Artikel: Es kann sein, dass ein Artikel (sagen wir mal Milch) von mehreren Lieferanten (sagen wir mal Landwirt 1 und Landwirt 2) bezogen werden kann. Damit hat Du eine N:M Beziehung zwischen Lieferanten und Artikeln.

    Lieferanten
    M
    |
    N
    Artikel

    Dies M:N Beziehung sollte nun mit einer Beziehungsentität (nenne wir sie mal LiefernatenArtikel) augelöst werden:
    Lieferanten
    1
    |
    M
    Lieferanten Artikel
    N
    |
    1
    Artikel

    Mit Deinem Ansatz würdest Du mit einem Mehrwert Feld beim Lieferanten die Artikel ablegen, also z.B. "Milch;Käse;Heu;Most;Äpfel;Birnen"
    Wenn Du nun wissen willst, welche Lieferanten z.B. Birnen verkaufen, dann musst Du immer mit einem Like oder String Operationen und Funktionen arbeiten, um an die Datensätze heranzukommen. Wenn Du dann noch mit Formularen und Unterformularen arbeiten willst, dann wird es kompliziert, weil ein Unterformular über die Master-Child Felder zum Hauptformular in Beziehung steht, die Dir hier dann fehlt. Auch die Auswahl in Listboxen ist dann nicht mehr ganz so einfach.
    Bei einer Auflösung der Relationen wie oben beschrieben, kannst Du ganz einfach mit einem Join über die 3 Tabellen nach allen Lieferanten, die Birnen liefern, suchen und erhälst dann z.B. auch noch gleich den Preis mit, die Du beim jeweiligen Lieferanten bezahlst.
     aufgelöst werden. Meist tragen diese Beziehungsentitäten noch zusätzliche Attribute, in unserem Fall z.B. den Preis, den Du bei diesem Lieferanten für den Artikel bezahlst, oder sie haben weitere Beziehungen, wie z.B. die Lieferungen, welche sich auf LieferantenArtikel beziehen.

    Wenn Du deine gewünschten Mehrwert Felder so auflöst, dann wird die Anwendungsentwicklung vereinfacht, weil Du dann immer direkt auf die Tabellen zugreifen kannst, ohne per Code irgendwelche Elemente da herausoperieren zu müssen.

    Ich rate Dir daher von Mehrwert Feldern ab. Versuche ein gutes Datenbank Design einzuhalten und Du wirst sehen, dass sich das künftig auszahlt.

    Gruss
    Henry
      "Fritzli07" schrieb im Newsbeitrag news:15b671a4-3baa-4ee9-88d3-46b225d6150d@communitybridge.codeplex.com...

    Kennt jemand von Euch die Möglichkeit in Access2013 die Werte von
    mehreren Datenfelder in ein gemeinsames Mehrwertfeld zu übertragen?
    Kann es sein, dass ich für diese Aufgabe zwingend eine konvetionelle
    m:n Beziehung erstellen muss?
    Grundsätzlich funktioniert meine Datenbank mit der "gekröpften" m:n
    Beziehung mit dem Mehrwertfeld. Doch die bestehenden Daten, welche ich
    dort einfügen möchte, befinden sich noch in eigenen Feldern.

    Donnerstag, 27. März 2014 04:32
  • Hallo Henry

    Du hast mich überzeugt! Ich bin ein Access-Neuling und es schein mir nun Wirklich vernünftiger die Datenbank korrekt aufzubauen. Man weiss ja nie, was noch kommt... :-)

    Vielen Dank für Deine Erklärung!

    Fritzli07

    Samstag, 29. März 2014 17:56