Perché non ci sono più chiavi esterne nel database di 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?

Ciao,
sono venuto sul forum per fare la stessa identica domanda dopo aver guardato le tabelle.

Con le mie conoscenze limitate, i vincoli sono stati probabilmente gestiti a livello di Rails tramite i modelli. Tuttavia, vorrei saperne di più in merito.

Stiamo riflettendo su questo problema e non abbiamo ancora preso una decisione definitiva.

Alcuni di noi vogliono che tutte le chiavi esterne siano definite in PG, ritenendo che i vantaggi superino di gran lunga i rischi. Altri invece ritengono che apportare un cambiamento drastico come questo ora sarebbe rischioso.

Le chiavi esterne introducono vincoli nel database: se, ad esempio, la tabella category_users avesse un vincolo che impone che category_id debba essere un id valido nella tabella categories, ogni volta che inseriamo dati in category_users dovremmo verificare questo requisito, il che comporta un certo costo, considerando che abbiamo moltissime dipendenze in gioco.

Comunque… è una preoccupazione di cui siamo consapevoli.