Por que não há mais chaves estrangeiras no banco de dados do Discourse?

I saw discourse db table schema only has several foreign keys, is there any reason to not use the foreign keys in most tables?

Oi,
Venho ao fórum fazer exatamente a mesma pergunta depois de olhar as tabelas.

Com meu conhecimento limitado, as restrições provavelmente foram tratadas no nível do Rails, por meio de modelos. Mas gostaria de saber mais a respeito.

Estamos refletindo sobre esse problema e ainda não chegamos a uma decisão definitiva.

Alguns de nós querem que todas as chaves estrangeiras sejam definidas no PostgreSQL, acreditando que os benefícios superam amplamente os riscos. Outros sentem que fazer uma mudança drástica como essa agora seria arriscado.

As chaves estrangeiras de fato introduzem restrições no banco de dados. Por exemplo, se a tabela category_users tivesse uma restrição afirmando que category_id deve ser um id válido na tabela categories, toda vez que inseríssemos dados em category_users, teríamos que verificar isso, o que adiciona um certo custo e, considerando que temos muitas e muitas dependências em andamento, isso se torna relevante.

De qualquer forma, essa é uma preocupação da qual estamos cientes.