When you say the data in them could change any day, this is true of many slowly changing dimensions, but we don't rebuild these daily. Typically the key value you've identified (eg/ Customer Name) remains constant, while attributes related to this may change (address, city, zip etc). This doesn't require a full tear down of the dimension.
I'm assuming the above isn't your case, but just on the off chance it is, have you considered that you have identified the correct unique identifier ('key') for your dimension/s?
As mentioned, I've seen a few cases where the dim values truly did change, markedly, over time (e.g. delivery status) but to be truthful, I still think that we hadn't approached the design correctly, and could have managed these status changes differently.