I think, in theory, you need it. But it depends on how you separate your data from the database. If all of them are in the same database, a foreign key can help you, since setting a foreign key will help the database choose faster based on indexing. If you share tables across many databases, you need to check them at the application level.
You can check your database, but it can be slow. In general, in the data warehouse, we do not care about redundancy or integrity. We already have a lot of data, and several integrity and redundancy will not affect the overall aggregated data.
vodkhang
source share