システムログや日報のように、「日々レコードが増えていくアプリ」に対し、レコードの上限を設けておきたいと言う要望があります。
レコードの全体件数にもよるとは思うのですが、なるべくパフォーマンスを落とさずに実現する良い方法は無いでしょうか…。
(原則、レコードの飛び番(任意の削除)は起きないと仮定します。)
例えば、
1アプリのレコード数の上限を10,000レコードと設定したい場合、
これを超えたら古いレコードから順に削除をする仕掛けで実現は出来ると思うのですが、
レコードの件数取得を繰り返して、削除を実行するのは全体件数が肥大化すると、どんどん処理が遅くなりそうで…。
妙案を頂ければ幸いです。
森 大祐様
cstapの落合です。
以下のような感じでできるかと思います。
var appId = kintone.app.getId();
var maxCount = 10000; // 任意の上限
kintone.api(‘/k/v1/records’, ‘GET’, {
app: appId,
query: "limit 100 offset " + maxCount
}, function(response) {
if (response.records.length > 0) {
// ここで古いレコードの削除処理
}
});
この方法でパフォーマンスは特に問題ないのではないでしょうか。
しかし、CSVで一括登録された場合は考慮していません。
以上、参考になりますでしょうか?
落合様
早すぎるご回答、ありがとうございます。
スピード回答に驚きました;
ご回答内容は、思わず「手ポン」です。
早速試してみます…!
CSVで一括登録された場合は考慮していません。
レスポンスの話は、言われて気づきました…。
ほぼ、10001レコード(くらい)を10000レコードに削除減数し続けるだけの話でした。
なるほどですね・・・ありがとうございます!
こんにちは、私も困り事があり、この投稿にたどり着きました。
私は、溜まって行ってしまう《テーブル》に対して上限を付けて、古い物から削除出来ればと探しておりました。
しかし、この投稿にも興味があり、やっては見た物のシローとなので、上手く行きませんでした。
もし宜しければ、自分の環境に合わせる場合の変更箇所など教えて頂けませんでしょうか?
では、宜しくお願いします。