非常に多数のバイナリプロパティ - 151(!)が厳密な - 私はこのデータを構造的にモデル化する方法に関心があります。ビットフィールドをバイトとして保存するという内部的な効率にもかかわらず、私のプログラミングでは、151ビットフィールド(他のプロパティに加えて)を持つテーブルが作成されています。多数のビットフィールドを持つデータベース構造
大量の行はありません。おそらく1000になり、一度生産に送られると頻繁に変更されません。
自分のデータを分離したサブクラスに分類し、別々のテーブルを作成することを考えましたが、この方法でプロパティを分割することは実用的ではなく、可能な場合でもデータサブクラスとは効果的に対応しません。もう1つの問題は、すべてのデータをまとめてフィールドや行の重複を避けたいということです。私もいくつかのカスタムバイナリ形式を使用することを検討しましたが、これは私のデータのキーフィールドが他のテーブルの外部キーとして使用されるため、実行できません。
クエリは、関連するデータを抽出するためにWHERE句を頻繁に使用します。私は複数のlongまたはintフィールドを使用することを検討しましたが、SQLでビット単位の演算子や関数がないことを知っているので、これを実行不可能なものとして拒否しました。上記のように、プロパティの分類は、ソフトウェア工学の問題(この方法で)
私はPostgreSQLを使用します。
ここで私の質問は、膨大な数のフィールドを持つテーブルを作成するか、リレーショナルモデルと互換性のある他のメソッドがありますか?
+1。 DBがこのデータにとって最適な場所ではない可能性があることに同意します。適切なマスクを使用したビット単位のテストは、より適しているようです。 –
これは実際は私の元々の計画でしたが、私のキーフィールドは他のテーブルの外部キーとして必要です。とにかく、ビット単位の演算子がサポートされているので、この時点では問題はありません。私の構造は明らかになります。 – gvkv
Hmmm ...キー値はどこからでも入手できます。そして、私は理解しません。 "...ビット単位の演算子がサポートされているので..."あなたは今できるのですか?私はあなたの主張に従っていません。しかし、私はあなたの構造が明らかになるというあなたの言葉を取るでしょう。 – dkretz