TINYINT vs Nullable BIT performance in MS SQL Server We need three modes to display the status of users in the database!
We can do it in two ways

Nullable BIT:

Null: Not checked

0: Not accepted

1: accepted

TINYINT

0: Not checked

1: accepted

2: Not accepted


Which data type is better when we need to represent three values?
It's highly unlikely that there is a material performance difference here.

So the choice is between 

create table AppUser
(
  Id int identity primary key,
  Name nvarchar(200) not null,
  UserAccepted bit null
)


And

create table UserStatus
(
  Id tinyint primary key,
  Description varchar(200)
)

create table AppUser
(
  Id int identity primary key,
  Name nvarchar(200) not null,
  UserStatus tinyint not null references UserStatus default 0
)


And while one might be preferable in your particular application, they are both reasonable designs.