Lots of smart people have tried to solve this problem and it's a tough one to solve, not just in Craft land but WP, and others. And because of Craft's flexible nature, a change in one table usually means many more updates from others.
Arguably the most reliable way I've seen it done is to use a "top-down" approach. Make the content changes in the production data first, then pull them down to staging/dev since production is essentially the "canonical" version.
If you need to make a new field or whatever to keep things current, add it on both sides. Then do your logic part—anything that could cause something to break the front end—on staging.
If you write your own logic for plugins, look into migrations; Craft can handle schema changes pretty well from an old schema to a new one if you write them properly. If you find your developers are doing this a lot, you may need to revisit your content strategy.
Keeping the content in sync is one thing; doing dev work on a rapidly changing schema is tough no matter how you keep things in sync.
Some tools to help with this:
This thread has more details on different environments; here's another that talks about some tools I just linked up above.
Would be awesome for P&T to pull a rabbit out of their hat and have some sort of sync across environments as a first party solution, like they did with Commerce. If you want to see something like that, vote for it.