Да, нужно указывать.
не станет ли это проблемой в будущем
Наоборот, они помогут избежать проблем. Можно, конечно, и вручную все это прописывать, но зачем?
Если все-таки нужно указывать внешние ключи в БД, помогите определиться какие действия ставить на ON DELETE или ON UPDATE, например для таблицы users и posts.
Зависит от типа связи.
Пример:
Профиль - настройки пользователя (предположим, что они хранятся в отдельной таблице). Без пользователя настройки не имеют смысла, поэтому их также нужно удалить при удалении юзера.
Публикации в блоге - пользователь. Здесь уже на выбор:
1. Можно запретить удаление пользователя, если у него есть хотя бы один пост
2. Удалить все посты юзера вместе с аккаунтом