We are porting an old application that used a hierarchical database to a relational web app, and are trying to figure out the best way to port configuration switches (Y/N values). 

Our old system had 256 distinct switches (per client) that were each stored as a bit in one of 8 32-bit data fields. Each client would typically have ~100 switches set. To read or set a switch, we'd use bitwise arithmetic using a #define value. For example: 

```
if (a_switchbank4 & E_SHOW_SALARY_ON_CHECKS) //If true, print salary on check

```

We were debating what approach to store switches in our new relational (MS-SQL) database:

1. Put each switch in its own field
	* Pros: fast and easy read/write/access - 1 row per client
	* Cons: seems kludgey, need to change schema every time we add a switch
2. Create a row per switch per client
	* Pros: unlimited switches, no schema changes necessary w/ new switches
	* Cons: slightly more arduous to pull data, lose intellisense w/o extra work
3. Maintain bit fields
	* Pros: same code can be leveraged, smaller XML data transmissions between machines
	* Cons: doesn't make any sense to our developers, hard to debug, too easy to use wrong 'switch bank' field for comparison

I'm leaning towards #1 ... any thoughts?