View против Foreign Key

Я не профессиональный программист и не хорошо знаю SQL, я просто как любитель пишу программы для не больших организаций, хотя программами которые я писал все довольны. Но я не с этим пришел сюда. Может кто знает что присходит с базой данных когда вместо VIEW используешь FOREIGN KEY. Дело в том что VIEW помимо других работ как мне кажется экономит место в основной таблице, так как вместо повторяющихся слов в таблице - "Сварщик, Токарь, Сварщик, Токарь, Уборщица, Сварщик", я в основную таблицу вношу только индексы - "2,1,2,1,4,2", а с помощью VIEW показывается слово а не индекс, но если использовать FOREIGN KEY тогда мне кажется таблица будет не экономной в базе данных, потому что FOREIGN KEY как я понял записывает само слово целиком вместо индекса. Вопрос такой, экономнее ли VIEW или все же FOREIGN KEY показывает слова в ячейках но скрывает за ними индексы? Допустим у меня 1 миллион записей в поле, какая таблица будет экономнее для базы данных, с использованием VIEW или FOREIGN KEY


Ответы (1 шт):

Автор решения: Герман Борисов

VIEW и FOREIGN KEY — это механизмы разных уровней. Более того VIEW практически никогда не используется без FOREIGN KEY

экономит место в основной таблице, так как вместо повторяющихся слов в таблице - "Сварщик, Токарь, Сварщик, Токарь, Уборщица, Сварщик", я в основную таблицу вношу только индексы - "2,1,2,1,4,2"

Вот это как раз и является задачей для FOREIGN KEY. Он позволяет гарантировать, что на каждый «индекс», а если выражаться официальными терминами, то идентификатора/ID или ключа, указанного в основной таблице, у вас есть расшифровка в таблице-справочнике.

Да, можно использовать FK не по идентификатору и по целому слову, но это крайне неэффективно с точки зрения потребления памяти и встречается только в древних учебниках.

→ Ссылка