Ich entwerfe ein Dashboard, um Unternehmensmetriken anzuzeigen (derzeit mit ASP.net 3.5 in C#), und suche nach Rat zu Design. Ich bin nicht so an OOP in Webanwendungen gewöhnt.Polymorphismus mit Datenbankabfrage
Es kann viele verschiedene Metriken geben, die von verschiedenen Benutzern in einer Viele-zu-Viele-Beziehung gesehen werden können. Ich speichere die Benutzer in einer lokalen SQL-Datenbank und es ist natürlich sinnvoll, die Metadaten für jede "Metrik" zu speichern. Dies bietet auch eine Art Zugriffssteuerungsliste für jede einzelne. Jede Metrik kann mehrere verschiedene Diagramme haben, die unterschiedliche Designs haben (Balken, Spalten, Torten, Linien oder Kombinationen von solchen mit verschiedenen Reihen auf verschiedenen y-Achsen usw.).
Diese Diagramme können programmgesteuert entworfen und dann zur Laufzeit der ASP.net-Seite hinzugefügt werden. Es wäre schön, eine Vererbungsstruktur einer Oberklasse eines leeren Diagramms und verschiedener Diagrammtypen zu haben, die das erweitern.
Die Seite würde die Diagramme auswählen, die der angegebene Benutzer anzeigen und dann generieren kann. Dennoch sehe ich eine Art große switch-Anweisung als grobe Nachschlagetabelle für die entsprechende Unterklasse, die basierend auf den in der Datenbank ausgewählten Informationen instanziiert wird.
Gibt es einen künstlerischen Weg, dies zu tun? Irgendwie die Typdeklaration zur Laufzeit liefern? Sollte ich alle Stilinformationen über die Diagramme in die Datenbank verschieben und zusätzliche Tabellen und Spalten für Reihen, Datenpunkte, Farben usw. haben, wo eine einzelne Diagrammklasse alle notwendigen Abfragen durchführt und ein Diagramm erstellt? Vielen Dank.