I saw discourse db table schema only has several foreign keys, is there any reason to not use the foreign keys in most tables?
Привет,
Я пришел на форум задать тот же самый вопрос, посмотрев на таблицы.
С моими ограниченными знаниями, ограничения, вероятно, обрабатывались на уровне Rails с помощью моделей. Но я хотел бы узнать об этом больше.
Мы обдумываем эту проблему и пока не пришли к однозначному решению.
Некоторые из нас считают, что все внешние ключи должны быть определены в PostgreSQL, и полагают, что польза от этого значительно перевешивает риски. Другие же считают, что внесение столь радикальных изменений сейчас было бы рискованно.
Внешние ключи действительно вводят ограничения в базу данных. Например, если бы таблица category_users имела ограничение, согласно которому category_id должен быть корректным id в таблице categories, то при каждой вставке данных в category_users нам пришлось бы проверять это условие. Это добавляет накладные расходы, а у нас уже существует множество зависимостей.
В любом случае… мы осознаём эту проблему.
