Zend_Db_Table_Rowsetを拡張する

Zend_Db_Table_Rowsetのデータを削除したり、一括で更新したりするのに
foreach使っていたんですが、めんどうだなーと思って、拡張を考えました。

http://framework.zend.com/manual/ja/zend.db.table.rowset.html#zend.db.table.rowset.extending
上記を参考にして、以下のクラスを追加

class MyRowset extends Zend_Db_Table_Rowset_Abstract
{
    public function delete()
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->delete(); }
    }

    public function save()
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->save(); }
    }

    public function __set($key, $value)
    {
        if (!$this->valid()) { return; }
        foreach ($this as $row) { $row->{$key} = $value; }
    }
}

まだ動かしてないので、うまくいくかわからないけれど、メモとして残します。

あと、書き込み操作連鎖も初めて使ってます。
http://framework.zend.com/manual/ja/zend.db.table.relationships.html#zend.db.table.relationships.cascading

DBはMySQLで、外部キー制約を付けようと考えたのですが、対象テーブルにないキーが入ってしまうことがあるので、つけることができずに、上記の機能を利用することを考えました。
今までは、MySQLで外部キーつける権限がない時に使えるくらいの認識だったんですが、都合がいい部分だけ外部キー制約つけれるかもってことで、これは使えるんじゃないかと思います。