My team has a DB table, which is shared across multiple applications. The table has one primary key INT column and most of the columns are nullable boolean using for flags and configuration. Note that not all columns are being used in all applications, but some columns are shared.
The table creator mentioned she chose to go with this approach because the table keeps growing as new requirements are being introduced at later time. She also did not want the database side to decide the default value (since the new columns introduced will be treated as unknown), but rather let each application decides how to handle the null value on the columns it needs. We never have a problem with this approach because the table is always queried by the primary key.
However, our new team member recently reviewed the data table as an outsider view without digging too deep into the reasoning or context of the table and had some concern over having nullable boolean due to potential poor performance. He claimed that the data size will also be larger (in foreseeable future, the table will not grow beyond 50k rows at most) and suggested that the column should be non-nullable and set the default value instead.
Is that concern really the case here?