Eu quero criar uma tabela que tenha uma coluna chamada "direção".
Esta coluna é "in" ou "out". Não é anulável e só pode conter esses dois valores. Nunca outros valores.
Qual tipo de dado é mais viável?
Eu uso no PostgreSQL. Está 100% ok se o tipo de dados for específico de PG (conhecido apenas por esta implementação de banco de dados).
Você pode criar um tipo enumerado para isso: