Strategy for Storing Multiple Nullable Booleans in SQL

Posted by Eric J. on Stack Overflow See other posts from Stack Overflow or by Eric J.
Published on 2012-08-30T21:36:25Z Indexed on 2012/08/30 21:38 UTC
Read the original article Hit count: 167

Filed under:
|

I have an object (happens to be C#) with about 20 properties that are nullable booleans. There will be perhaps a few million such objects persisted to a SQL database (currently SQL Server 2008 R2, but MySQL may need to be supported in the future). The instances themselves are relatively large because they contain about a paragraph of text as well as some other unrelated properties.

For a given object instance, most of the properties will be null most of the time.

When users search for instances of such objects, they will select perhaps 1-3 of the nullable boolean properties and search for instances where at least one of those 1-3 properties is non-null (OR search).

My first thought is to persist the object to a single table with nullable BIT columns representing the nullable boolean properties. However, this strategy will require one index per BIT column to avoid performing a table scan when searching. Further, each index would not be particularly selective since there are only three possible values per index.

Is there a better way to approach this problem?

© Stack Overflow or respective owner

Related posts about sql

Related posts about sql-server