To save the news and author at the same time I would do this; In the news model add:
protected function _afterSave()
{
parent::_afterSave();
if ($this->dataHasChangedFor('author')) {
Mage::getModel('tasknews/author')
->load($this->getId(), 'news_id')
->setNewsId($this->getId()) // in case there wasn't a record before
->setAuthor($this->getAuthor())
->save();
}
return $this;
}
// necessary to fill orig data for dataHasChangedFor() to work above
// only called when loading a single object, for collections use joinAuthors()
protected function _afterLoad()
{
$author = Mage::getModel('tasknews/author')
->load($this->getId(), 'news_id')
->getAuthor();
$this->setData('author', $author); // not setAuthor() in case that's a real method
$this->setOrigData('author', $author); // this value is compared when saving
return parent::_afterLoad();
}