I think it is always a good way of separation between the data format, that is stored in the database, and the internal domain model, that represents your business case. The mapping layer between these two parts is the necessary part for separation. It's also a good way to keep the persistence framework out of the domain.