Я бы сказал, что правильные отношения помогут людям лучше понять данные (или их намерения), чем если бы они были опущены, тем более что их общая стоимость довольно низкая.
Их наличие не снижает производительность, за исключением случаев, когда речь идет об архитектуре (как отмечали другие, целостность данных иногда вызывает нарушения внешнего ключа, что может иметь определенный эффект), но IMHO перевешивается многими преимуществами (при правильном использовании).
Я знаю, что вы не спрашивали, использовать ли FK или нет, но я подумал, что просто добавлю пару точек зрения о том, почему их использовать (и придется иметь дело с последствиями):
Есть и другие соображения, например, если вы когда-нибудь планируете использовать ORM (возможно, позже), вам потребуются внешние ключи. Они также могут быть очень полезны для ETL / импорта и экспорта данных, а затем для отчетов и хранилищ данных.
Также полезно, если другие приложения будут использовать схему - поскольку внешние ключи реализуют базовую бизнес-логику. Таким образом, ваше приложение (и любые другие) должны знать только об отношениях (и уважать их). Это обеспечит согласованность данных и, скорее всего, сократит количество ошибок в данных в любых потребляющих приложениях.
Наконец, он дает вам довольно приличный намек относительно того, куда помещать индексы - поскольку, скорее всего, вы будете искать данные таблицы по значению FK.