This is a technical rant, so if you're not familiar with software development and database programming, skip this post. You'll just get bored. Who knows, maybe even developers will get bored.
My current project uses C# and an Oracle 9i database. As is frequently the case, the database is under the iron control of the DBAs. I've done a good bit of development in this sort of situation, so I've gotten used to their arcane naming rules and so forth. They also like to use a single table to store name-value pairs where I would prefer to use discrete tables for each different type of lookup data. This is probably more a matter of style than substance, so I just go with the flow. Even when the table schema ended up including a total of almost twenty columns, most of them extraneous, I recommended that the extra columns be eliminated from the table, but didn't complain when they decided they wanted to keep them.
But I needed another column to indicate whether each row is in use. All of my other tables that need this column has it. Of course, since Oracle doesn't have a Boolean datatype, we had to make it a Number column with a width of 1, where we store a 1 for True and a 0 for False. We even built a standard conversion function into the framework to convert "automatically" between C#'s Boolean and Oracle's Number(1).
But they balked at my request, especially since there are seven columns already in the table that I'm not using and they won't get rid of. Unfortunately, none of those columns are a Number datatype. They're well-thought-out suggestion was that I use one of the Date columns and store one date for False and a different date for True.
Yes, that's right. Their recommendation is that we convert from Boolean to Number(1) in our C# code, then from Number(1) to a particular date in the stored procedures going to the database, then reverse the process coming back out. I'll refrain from the ad hominem dancing on my lips and say that I found a simpler way. In case you're interested, I decided to use one of the string (VARCHAR2) columns to store a '1' or a '0', retrieve it into a private String variable in the object, and then convert that into a True or a False when exposing it through a public property.
Well, that's my rant for the day. Thanks for indulging me.