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