Meine Anforderungen sind:
- Muss in der Lage sein, benutzerdefinierte Felder eines beliebigen Datentyps dynamisch hinzuzufügen
- Muss in der Lage sein, UDFs schnell abzufragen
- Sie müssen in der Lage sein, Berechnungen für UDFs basierend auf dem Datentyp durchzuführen
- Muss in der Lage sein, UDFs nach Datentyp zu sortieren
Andere Informationen:
- Ich suche hauptsächlich Leistung
- Es gibt einige Millionen Stammsätze, an die UDF-Daten angehängt werden können
- Bei meiner letzten Überprüfung befanden sich in unserer aktuellen Datenbank über 50 Mio. UDF-Datensätze
- Meistens ist eine UDF nur an einige Tausend der Stammdatensätze angehängt, nicht an alle
- UDFs werden nicht verbunden oder als Schlüssel verwendet. Es handelt sich lediglich um Daten, die für Abfragen oder Berichte verwendet werden
Optionen:
Erstellen Sie eine große Tabelle mit StringValue1, StringValue2 ... IntValue1, IntValue2 usw. Ich hasse diese Idee, werde sie aber in Betracht ziehen, wenn mir jemand sagen kann, dass sie besser ist als andere Ideen und warum.
Erstellen Sie eine dynamische Tabelle, die bei Bedarf eine neue Spalte hinzufügt. Diese Idee gefällt mir auch nicht, da ich der Meinung bin, dass die Leistung langsam ist, wenn Sie nicht jede Spalte indizieren.
Erstellen Sie eine einzelne Tabelle mit UDFName, UDFDataType und Value. Wenn eine neue UDF hinzugefügt wird, generieren Sie eine Ansicht, die genau diese Daten abruft und sie in den angegebenen Typ analysiert. Elemente, die die Analysekriterien nicht erfüllen, geben NULL zurück.
Erstellen Sie mehrere UDF-Tabellen, eine pro Datentyp. Wir hätten also Tabellen für UDFStrings, UDFDates usw. Wahrscheinlich würden wir das Gleiche wie # 2 tun und automatisch eine Ansicht generieren, wenn ein neues Feld hinzugefügt wird
XML-Datentypen? Ich habe noch nie damit gearbeitet, aber ich habe gesehen, dass sie erwähnt wurden. Ich bin mir nicht sicher, ob sie mir die gewünschten Ergebnisse liefern würden, insbesondere bei der Leistung.
Etwas anderes?