Por que não ter uma tabela de pesquisa que contém o código e a descrição. A criação de uma chave estrangeira para esta tabela de pesquisa resultará no uso apenas de códigos válidos.
Design de banco de dados temporal, com um toque diferente (linhas ao vivo vs linhas de rascunho)
APIs REST Python com Flask, Connexion e SQLAlchemy – Parte 3
MySQL workbench:Como exportar o banco de dados mysql para o arquivo .sql?
Construindo um modelo de aprendizado de máquina com SQL Server, ML.NET e C#