Warum gibt es im Discourse-Datenbank weniger Fremdschlüssel?

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

Hallo,
ich komme ins Forum, um nach dem genauen gleichen Thema zu fragen, nachdem ich mir die Tabellen angesehen habe.

In meinem begrenzten Wissen wurden die Einschränkungen wahrscheinlich auf Rails-Ebene mit Modellen gehandhabt. Ich würde jedoch gerne mehr dazu erfahren.

Wir beschäftigen uns mit diesem Problem und haben noch keine klare Entscheidung getroffen.

Einige von uns möchten, dass alle Fremdschlüssel in PostgreSQL definiert werden, und sind der Meinung, dass der Nutzen die Risiken hier weit überwiegt. Andere sind der Ansicht, dass eine so drastische Änderung jetzt riskant wäre.

Fremdschlüssel führen zwar zu Einschränkungen in der Datenbank: Wenn beispielsweise die Tabelle category_users eine Einschränkung hätte, die besagt, dass category_id eine gültige id in der Tabelle categories sein muss, müssten wir bei jedem Einfügen von Daten in category_users dies prüfen. Das verursacht zusätzliche Kosten, und wir haben viele Abhängigkeiten.

Wie auch immer – uns ist dieses Anliegen bewusst.