Frage

Im Aufbau eine Web-Anwendung, die eine Prozess-Management-Anwendung ist. Mehrere verschiedene Mitarbeitertypen eine Liste von Aufgaben werden zu tun gezeigt und wie jeder eine Aufgabe abgeschlossen ist, dann wird es in den nächsten Mitarbeiter bewegt auf arbeiten.

Die Task-Hierarchie ist Batch> Laden> Montage> Teil> Aufgabe. Es gibt zur Zeit 8 Regeln für die Bestimmung der Aufgabe sollte für jeden Mitarbeiter Typen auf dem ersten bearbeitet werden. Diese Regeln gelten für Größe des Teils, und wie auch, dass Teile der Fertigstellung wird die Hierarchie zB beeinflussen, wenn Teil A abgeschlossen ist dann eine ganze Charge abgeschlossen ist, wo als Teil B nicht, da es noch andere Teile in der Batch verbleibenden abgeschlossen werden.

Wie auch immer das ist der Elevator Pitch, wie das System funktioniert. Was ich versuche, eine effiziente, schnelle und wartbare Art und Weise, dies zu tun bedenkt, um herauszufinden, ist die Regeln ändern könnten und mehr Regeln hinzugefügt werden.

Zunächst beabsichtige ich die DB (SQL 2005) zu lassen, alles tun, das schwere Heben, aber ich habe eine Sorge, dass die komplizierteren Regeln schwierig sein werden, mit einem DB zu implementieren. So eine Alternative ist, eine Liste von Aufgaben in eine mittlere Ebene zu ziehen und eine Sammlung von Objekten erstellen und die jede der Regeln auf die Sammlung anzuwenden. Ich habe keinen Zweifel, dass jede Regel zu T-SQL in Isolation übersetzt werden könnte, aber bis zu 8 Kriterien von der Bestellung über den Aufgabentyp abhängig fühlt mich wie eine Menge Ärger.

Ein Vorteil i mit dem der mittleren Ebene Ansatz sehen kann, ist, dass ich ein lockere beschränkt System schaffen kann, wo Task-Flow kann geändert werden, die schwieriger in der DB wären, denke ich.

Also, was würde euch empfehlen? Gibt es eine dritte Alternative, ich habe nicht gedacht?

EDIT [1] Genau diese ein bisschen mehr zu qualifizieren, Die DB wird nicht erwartet, von zu ändern, was ich es zunächst entwickeln.

War es hilfreich?

Lösung

Es ist schwierig, aus den Angaben in der Frage zu bestimmen. Jedoch Ihre Logik in einer Business-Logik (Mitte) Schicht setzen bedeutet, dass Ihre Geschäftsregeln auch weiterhin den gleichen Code verwenden, egal, was die Back-End-Datenbank sein kann. Im Moment Sie T-SQL angeben, aber ist es möglich, dass Sie in Zukunft auf eine Nicht-SQL Server-Umgebung bewegen wird?

Andere Tipps

Welche Plattform? .NET 3.5 stellt LinqToSQL, dass dies ein strittiger Punkt machen kann. Sie könnten eine Strategie-Muster zur Auswahl verwenden / eine entsprechende Abfrage bauen auf den Aufgabentyp basiert, dann lassen Sie LINQ die Übersetzung für Sie tun SQL. Auf diese Weise können Sie die Abfrage in Code bauen, aber es tatsächlich noch auf der DB ausgeführt hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top