2013-08-19 10 views
6

収集したデータを犠牲にしたり、面倒な移行を書くことなく簡単に表現を切り替えることができる可能性があるため、私は書いているアプリケーションのデータベースバックエンドとしてdatalogを使うことを検討しています。データを変更するためのデータログパターン

しかし、私はデータを変更することにどのように対処するのか予測できません。ユーザーが変更できるパスワードと同じくらい簡単です。私は日付を持つ行にタグを付けるアイデアだった:

changepassword(<user>, <passhash>, <date>) 

をしてから、最新のを使用していますが、すべての行を返すと、アプリケーション側でそれらをフィルタリングすることなく、最新のを取得する方法があるようには思えません。

データログアプリケーションは、変化するデータを処理するためにどのように設計されていますか?

答えて

3

http://c2.com/cgi/wiki?QueryLanguageComparisonを見ると、過渡的な関係と再帰的なクエリのために、Datalogに集約、最小、最大、上位Nなどを実行する機能がないことがわかります。

本質的には、アプリケーション層では、理想とはかけ離れた集約などを行う必要があります。

しかし、これらのケースではDatalogの構文を拡張した製品(少なくとも私は使用していないか、または詳細を調べておかなければなりません)があります:Datomic、セクション「単一の値を返す集計」を参照してください。

関連する問題