I've always kept a 1 way workflow in which I pulled my DB to my local development environment and pushed theme and plugins to the live site. The reason for this is that I didn't want to overwrite any changes my users made on the live sites.
I'm to a point now where I'd really like to develop a project or make necessary updates to client sites on my local environment and push the whole works to the live site when its complete. The problem is that I only know enough about mySQL to be dangerous. I'm not confident that I know the best way to import/export my DB without overwriting changes I've made locally or changes that a user has made (that I have no way of knowing were made).