Вопрос: Можете ли вы объяснить, что такое индекс в этом сценарии и как он отличается от внешнего ключа и как это влияет на мою структуру базы данных?
Ваши внешние ключи в этом случае являются двумя столбцами в таблице Posts_Tags. При использовании внешнего ключа каждый столбец внешнего ключа должен содержать значение из основной таблицы, на которую он ссылается.В этом случае таблицы Posts and Tags.
Posts_Tags-> сообщения дан должен быть значением, содержащееся в Posts->
сообщения дана
Posts_Tags-> TagID должно быть значение, содержащиеся в> TagID тегов-
Думайте индекс в виде столбца, который был учитывая повышенную скорость и эффективность для запроса/поиска значений из него за счет увеличения размера вашей базы данных. Как правило, первичными ключами являются индексы и другие столбцы, которые требуют запроса/поиска на вашем веб-сайте, вероятно, имя сообщения (Posts-> PostName)
В вашем случае индексы будут иметь небольшое влияние на ваш дизайн (они хороши для скорости и эффективности), но ваши внешние ключи очень важны, чтобы избежать повреждения данных (имея значения в них, которые не соответствуют сообщению и/или тегу).
Внешние ключи не применяют правило NOT NULL. Внешний ключ принуждает к ограничению значений столбца. – jabbie
Он не говорит о применении значения NOT NULL, он говорит о том, что у меня нет идентификатора в дочерней таблице, которого нет в родительской таблице. –
Точно. Спасибо, габриэль, для объяснения. – Dmitry