¿Por qué no hay más claves foráneas en la base de datos de 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?

Hola,
Vengo al foro a hacer exactamente la misma pregunta después de ver las tablas.

Con mi conocimiento limitado, es probable que las restricciones se hayan manejado a nivel de Rails con modelos. Pero me gustaría saber más al respecto.

Estamos analizando este problema y aún no hemos tomado una decisión clara.

Algunos de nosotros queremos que todas las claves foráneas estén definidas en PostgreSQL, considerando que los beneficios superan con creces los riesgos. Otros sienten que realizar un cambio tan drástico ahora sería arriesgado.

Las claves foráneas sí introducen restricciones en la base de datos; por ejemplo, si la tabla category_users tuviera una restricción que indicara que category_id debe ser un id válido en la tabla categories, cada vez que insertáramos datos en category_users tendríamos que verificarlo, lo que añade cierto costo y, además, tenemos muchas y muchas dependencias en juego.

En cualquier caso, es una preocupación de la que somos conscientes.