it-swarm.com.de

Viele-zu-Viele-Assoziationen - An Ort und Stelle oder auf neuem Bildschirm bearbeiten?

Ich versuche, eine Schnittstelle zu entwerfen, um zwei Dinge zu tun:

  1. Erstellen Sie Elemente und Objekte
  2. Erstellen Sie Verknüpfungen zwischen Elementen und Objekten (in einer Viele-zu-Viele-Zuordnung).

Ein Element ist ein einfaches Attribut, das auf mindestens ein (und möglicherweise alle) Objekte angewendet werden muss.

Ein Objekt ist ein automatisch nummerierter Container, der mindestens ein Element enthält. Objekte werden in einer verschachtelten Zuordnung in automatisch nummerierte Unterobjekte aufgeteilt.

Ich habe ein Formular ähnlich dem folgenden Modell entworfen, um die Erstellung von Elementen und Objekten nebeneinander zu ermöglichen:

mockup

bmml source herunterladen - Wireframes erstellt mit Balsamiq Mockups

Dieses Formular funktioniert für den jeweiligen Anwendungsfall meiner Anwendung recht reibungslos. Ich stoße auf Schwierigkeiten beim Bearbeiten von Assoziationen zwischen Elementen und Objekten.

Mein Gefühl ist, dass es möglich sein sollte, die Zuordnung zu bearbeiten, während Sie auf diesem Bildschirm bleiben. Ich würde mir vorstellen, dass es so etwas laufen würde:

  1. Der Benutzer klickt auf ein Element.
  2. Unter dem Element wird Text mit dem Effekt "Add Item Name to Objects ->" angezeigt
  3. Die anderen Elemente werden ausgeblendet und durch Klicken deaktiviert
  4. Die Schaltflächen "Objekt hinzufügen" sind deaktiviert
  5. Jeder Objektlink wird durch ein Kontrollkästchen ersetzt
  6. Der Benutzer klickt auf eine Schaltfläche "Fertig" ... möglicherweise neben dem bearbeiteten Element

Dies würde umgekehrt funktionieren, wenn Sie auf ein Objekt klicken.

Dies scheint gut zu funktionieren, da es die Tatsache ausnutzt, dass alle benötigten Entitäten bereits auf dem Bildschirm vorhanden sind. Es ist auch schön, wenn der Benutzer einen Überblick über alle Elemente und Objekte hat (insbesondere für den Anwendungsfall meiner Anwendung).

Ich mache mir jedoch Sorgen, dass das Hinzufügen eines zusätzlichen Modus zu einer bereits komplizierten Form die Benutzer verwirren wird.

Haben Sie Vorschläge, um zu verhindern, dass der Moduswechsel verwirrend wird?

Können Sie sich alternativ starke Argumente für das Extrahieren dieses Modus in einen separaten Bildschirm oder Dialogfeld "Zuordnung bearbeiten" für das ausgewählte Element/Objekt vorstellen?

6
Alex

Wie ich in meinem Kommentar sagte, sollten Sie einige weitere Informationen hinzufügen, um es klarer zu machen.

Generell stoßen viele-zu-viele-Beziehungen auf einige Probleme.

Es wird technisch gelöst, indem ein Mediatorobjekt (oder ein Junction-Tabelle/Querverweistabelle/Join-Tabelle ) hinzugefügt wird, und dies könnte ein Ansatz sein, um geeignete Lösungen zu finden . Schauen Sie sich dieses Beispiel unter http://sourcemaking.com/design_patterns/mediator an:

enter image description hereenter image description hereenter image description here

Das Hauptproblem hierbei ist, dass die Mediatorsache normalerweise eine abstrakte Sache ist. Nicht leicht zu benennen und nicht leicht zu beschreiben. Aber es ist da.

Manchmal ist es ein realer Gegenstand, zum Beispiel, wenn Sie eine Reihe von Produkten und eine Reihe von Kunden haben - Sie möchten, dass sie in einer Liste verbunden werden von Bestellungen.
enter image description here

Aber was ist, wenn Sie viele Bücher und viele Leser haben? Wie solltest du diese Verbindung benennen? Die Antwort ist nicht klar. Wenn Sie eine Bibliothek haben, können Sie sie als "Leihgaben" bezeichnen (bitte korrigieren Sie mein Englisch, wenn dies nicht der richtige Begriff ist). Wenn Ihr Amazon, können Sie es "Verkäufe" nennen. Aber wenn Sie eine Liste "Bücher, die ich gelesen habe" für Ihren örtlichen Buchclub führen, bin ich mir nicht sicher ...

Sie sollten einige Zeit damit verbringen, dies herauszufinden. Ja wirklich! Dies ist für die Benutzer des Produkts wichtig ( und . Dies ist ein wichtiger Aspekt für die Wartbarkeit Ihres Produkts. Verwenden Sie Eigennamen in Ihrem Code und in Ihrer Datenbank.

Also ... Ein richtiger Rat hängt wirklich davon ab, was Ihre Gegenstände wirklich sind und welche Beziehung zwischen ihnen und dem Aufgabe , die der Benutzer beim Erstellen und Verbinden ausführt.

Entschuldigung, dass dies ein langer Kommentar statt einer Antwort war ;-)

3