Использование внешнего ключа или текста в одной таблице

Я делаю сайт знакомств. Таблица профиля содержит личную, академическую, профессиональную и другую информацию. После поиска по NOSQL, денормализации баз данных и нескольких других тем я немного запутался в нескольких столбцах. Должен ли я использовать внешний ключ или будет лучше сохранить значения в одной таблице, где это возможно. Столбцы:

MaritalStatus
Religion
Community
Profession

Я могу создать отдельные таблицы для этих столбцов, а затем использовать Id из этих таблиц в качестве внешнего ключа в основной таблице профиля или хранить значения непосредственно в основной таблице профиля. Что было бы лучше, если мне нужно больше скорости.

1 ответ

Решение

Вопрос о скорости зависит от запросов, которые вы выполняете.

В общем, если вы разрабатываете приложение, вам нужны справочные таблицы для значений. Вы хотите, чтобы семейное положение, например, принимало такие значения, как "N", "D", "M" и "S", например, "никогда не был женат", "разведен", "женат" и "не женат" ". Вы можете сохранить полное расширение в справочной таблице с кодом в пользовательской таблице.

Такие справочные таблицы также удобны для таких вещей, как поддержка большего количества языков и проверка результатов.

Я сомневаюсь, что несколько соединений с небольшими ссылочными таблицами окажут большое влияние на скорость запросов. Это, вероятно, не должно быть вашей главной заботой, если только вы не подозреваете, что столкнетесь с проблемами производительности.

Другие вопросы по тегам