I design wordpress sites locally then when the time comes to deploy it to a hosted server I transer all the database and I edit the config table for the new url, but I dont think this is a good practice.
What are you thoughts on the best way to do this?
My question is : How do I publish a wordpress site from my computer to a live server constantly?
I take it you are referring to the site url settings. You can override these from the config file instead of manually editing the db values. This is a supported and probably safest way to do it.
http://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29
Once you have the site up and running you can save the settings from the WP interface and remove the lines from the config file.
define('WP_SITEURL', 'http://example.com/wordpress');
define('WP_HOME', 'http://example.com/wordpress');