Ich habe eine Klasse von Daten mit einer sehr großen Anzahl von binären Eigenschaften - 151 (!) Um genau zu sein - und ich bin besorgt, wie man diese Daten strukturell modelliert. Trotz der internen Effizienz, Bitfelder als Bytes zu speichern, kribbeln meine programmierenden Spidey-Sinne beim Erstellen einer Tabelle mit 151 Bitfeldern (zusätzlich zu anderen Eigenschaften).Datenbankstrukturen mit einer großen Anzahl von Bitfeldern
Es wird nicht viele Zeilen geben - vielleicht 1000 und einmal in die Produktion geschickt wird sich nicht sehr oft ändern.
Ich habe darüber nachgedacht, meine Daten in disjunkte Unterklassen zu kategorisieren und separate Tabellen zu erstellen, aber die Aufteilung der Eigenschaften auf diese Weise ist undurchführbar und würde, wenn möglich, sicherlich nicht effektiv mit den Datenunterklassen abbilden. Das andere Problem ist, ich möchte alle Daten zusammenhalten und Feld- und/oder Reihendoppelung vermeiden. Ich habe auch überlegt, ein benutzerdefiniertes Binärformat zu verwenden, aber dies ist nicht praktikabel, da das Schlüsselfeld in meinen Daten als Fremdschlüssel in anderen Tabellen verwendet wird.
Bei Abfragen werden die WHERE-Klauseln stark verwendet, um relevante Daten zu extrahieren. Ich habe überlegt, mehrere longs oder int-Felder zu verwenden, aber ich habe dies als nicht ausführbar abgelehnt, da ich keine bitweisen und-Operatoren oder Funktionen in SQL kenne und wie oben erwähnt, ist die Klassifizierung der Eigenschaften problematisch, ganz zu schweigen von anderen wichtigen Software-Engineering-Probleme (mit dieser Methode).
Ich werde PostgreSQL verwenden.
Also meine Frage hier ist, mache ich nur eine Tabelle mit einer großen Anzahl von Feldern oder gibt es andere Methoden kompatibel mit dem relationalen Modell?
+1. stimmen zu, dass eine DB möglicherweise nicht der beste Ort für diese Daten ist. Bitweises Testen unter Verwendung geeigneter Masken würde besser passen. –
Das war eigentlich mein ursprünglicher Plan, aber ich brauche meine Schlüsselfelder als Fremdschlüssel in anderen Tabellen. Wie auch immer, da bitweise Operatoren unterstützt werden, ist der Punkt nun strittig. Meine Struktur wird offensichtlich. – gvkv
Hmmm ... Ihre Schlüsselwerte sind genauso nützlich, egal wo Sie sie herbekommen. Und ich verstehe nicht "... da bitweise Operatoren unterstützt werden ..." Meinst du denn jetzt kannst du, musst du? Entschuldigung, aber ich folge deinem Argument nicht. Aber ich nehme dein Wort, dass deine Struktur offensichtlich wird. – dkretz