レコード群も削除できると嬉しい。いうことは、Post.delete()PostMeta.delete()PostMeta.delete()...これらの処理を内包するクラスを作成するとPage.delete()こうなる。ああ、何か簡単そうだ。設計するDBのテーブルへの問い合わせを誰に担当させるか。これはテーブルから作成したオブジェクトにさせよう。こまかい処理はユーザに任せて、大雑把な処理のインターフェースを提供したい。PostMeta()meta.insert()meta.update()meta.delete()そうするとDBへクエリを送らなきゃいけないから、オブジェクトにDBへのインターフェースを提供する必要がある。実現させるために、オブジェクトにバッファを用意する。TODOユーザはバッファに値をセットしたら後はオブジェクトに任せてアニメ鑑賞でもする。相撲観戦も捨てがたい。LAST_INSERT_ID()で取得できる。一度バッファにロードさせてから行う。これはコピー・アンドゥ等が必要でなければ無駄だから、削除用のクラスか関数を別に用意して、delete()内部で委譲させよう。ロードもファクトリーを用意して、ファクトリーにさせればオブジェクトがシンプルになって良い予感がする。ロードのキーの取得はユーザに任せよう。各オブジェクトに任せる。テンプレを用意しておけば簡単に書けそう。内部のバッファが違うだけだから、バッファをコンポジションすればラクかもしれない。継承と抽象クラスを使ってみたら、いい感じにコード量が減った。