Ich schreibe gerade ein Ressourcen-Management-System.
Ein Ressource ist eine Instanz einer Definition. Eine Definition ist im Grunde genommen die Metadaten, sie enthält die Eigenschaften.
Das ist im Allgemeinen meine Datenbank:
TypeDefinition
id name
===============
1 CPU
PropertyDefinition
id name typeDefinitionId valueType
================================================
1 frequency 1 int
2 status 1 string
TypeInstance
id name typeDefinitionId
=================================
1 CPU#1 1
2 CPU#2 1
PropertyInstanceValue
id propertyDefinitionId typeInstanceId valueType intValue StringValue FloatValue
========================================================================================
1 1 1 int 10
2 2 1 string Pending
3 1 2 int 20
4 2 2 string Approved
ANFORDERUNG:
Ordnen Sie alle Ressourcen nach einem spezifischen Eigenschaftswert.
Zum Beispiel: Ordnen Sie alle Ressourcen nach ihrem Status --> Das bedeutet, dass CPU#2 vor CPU#1 erscheinen wird, weil "Approved" vor "Pending" kommt.
Wenn wir nach Frequenz ordnen würden, wird CPU#1 vor CPU#2 erscheinen, da 10 vor 20 kommt.
Also muss ich jedes Mal nach einer anderen Spalte sortieren (intValue / stringValue/ FloatValue / usw.), je nach dem Wertetyp der Eigenschaft.
Irgendwelche Vorschläge?
BESCHRÄNKUNG:
PIVOT ist derzeit die einzige Option, die wir in Betracht gezogen haben, aber es ist nicht wirklich möglich, da die Datenbank riesig ist und ich möchte, dass die Abfrage so schnell wie möglich ist.
Vielen Dank im Voraus,
Michal.