I’m working on an application developed by another mob and am confounded by the use of a char field instead of bit for all the boolean columns in the database. It uses ‘Y’ for true and ‘N’ for false (these have to be uppercase). The type name itself is then aliased with some obscure name like ybln.
This is very annoying to work with for a lot of reasons, not the least of which is that it just looks downright aesthetically unpleasing.
But maybe its me that’s stupid – why would anyone do this? Is it a database compatibility issue or some design pattern that I am not aware of?
Can anyone enlighten me?
I’ve seen this practice in older database schemas quite often. One advantage I’ve seen is that using CHAR(1) fields provides support for more than Y/N options, like ‘Yes’, ‘No’, ‘Maybe’.
Other posters have mentioned that Oracle might have been used. The schema I referred to was in-fact deployed on Oracle and SQL Server. It limited the usage of data types to a common subset available on both platforms.
They did diverge in a few places between Oracle and SQL Server but for the most part they used a common schema between the databases to minimize the development work needed to support both DBs.