I have to say that the right relationship will help people understand the data (or the intent of the data) better than not to miss them, especially since the overall cost is pretty low in maintaining them.
Their presence does not interfere with performance, except from an architectural point of view (as others have pointed out, data integrity can sometimes cause foreign key violations, which can have some kind of effect), but IMHO is outweighed by many advantages (if used correctly).
I know that you did not ask whether to use FK or not, but I thought that I would just add a couple of points of view on why to use them (and I have to deal with the consequences):
There are other considerations, for example, if you ever plan to use ORM (maybe later), you will need foreign keys. They can also be very useful for importing and exporting ETL / data, and then for reporting and storing data.
It is also useful if other applications will use the scheme - because foreign keys implement the basic business logic. Thus, your application (and any others) should only know the relationships (and read them). It will maintain data consistency and, most likely, reduce the number of data errors in any consuming applications.
Finally, this gives you a pretty decent hint as to where to put the indexes, since most likely you will be looking for table data by FK value.
source share