CollectionVersions テーブルの cvIsApproved が現在承認されたバージョン
cvIsApprovedが 1 のものの CollectionVersionBlocks を 取り出し、
CollectionVersionBlocks の bID と 合致しない Blocks を 取り出す。
というSQLを書けばチェックできると思います。
left join など使わないといけない???
ただ、不要ということですが、ページをバージョン管理しているため、前のバージョンのブロックも保存されています。削除や変更などはされないほうがいいと思います。
また、不要なバージョンを削除すればブロックも削除されます。
Re: 使っているブロックと不要になったブロックの判定はできるのか
2012年5月26日 at 17:18
isActiveっていうメソッドはあるようですが…
Re: 使っているブロックと不要になったブロックの判定はできるのか
2012年5月28日 at 15:33
JOINができました。
見よう見まねでしたが、意外に簡単にできました。
これで実際に使われている有効なフォームブロックの最新のリストが得られたようです。
"SELECT * FROM CollectionVersionBlocks INNER JOIN CollectionVersions ON CollectionVersionBlocks.cID=CollectionVersions.cID AND CollectionVersionBlocks.cvID=CollectionVersions.cvID INNER JOIN btForm ON CollectionVersionBlocks.bID=btForm.bID WHERE CollectionVersions.cvIsApproved=1";
見よう見まねでしたが、意外に簡単にできました。
これで実際に使われている有効なフォームブロックの最新のリストが得られたようです。
"SELECT * FROM CollectionVersionBlocks INNER JOIN CollectionVersions ON CollectionVersionBlocks.cID=CollectionVersions.cID AND CollectionVersionBlocks.cvID=CollectionVersions.cvID INNER JOIN btForm ON CollectionVersionBlocks.bID=btForm.bID WHERE CollectionVersions.cvIsApproved=1";
Your post has been saved and will be published after approval by the forum moderator.
tomoac
Re: 使っているブロックと不要になったブロックの判定はできるのか
データベースのBlocksというテーブルに、bIsActiveというのがあるんですが、全部 "1" となっているのでこれを参照してるならだめですね。