2012-01-14 14 views
0

私は財務会計RESTful APIのストレージソリューションとしてMongoDBを評価しています。しかし、私はMongoDBのトランザクションや小数点データ型がないことを知っています。会計RESTful API、またはMONGoDBのDECIMALデータ型の欠如と取引のサポートを迂回

整数として格納し、必要に応じて精度係数で除算/掛け算することで、小数点の不足を克服できると思います。コンシューマーはAPIレイヤー経由でロード(GET)と保存(PUT/POST)を行い、APIレベルでコンバージョンを処理できるようになります。整数を格納することで、必要に応じて計算や原子の更新が可能になります。

MongoDBのトランザクションの不足は、少なくとも私の場合では表示されません。少なくとも、REST APIは巨大なワン・コール・フィッツ・オール・マルチ・アップデートを許可しません。 「論理的」トランザクション(複数の後続の更新呼び出しの連鎖)中に障害が発生した場合に、ロールバック・ロジックを実装することは、消費者の意向です。

DBに格納されている「オブジェクト」は、請求書、在庫、支払い...標準的な会計処理です。リレーショナル・データ・モデルはこの種のデータを格納するための優れたソリューションであることが分かっていますが、どのようにスケマレスなストレージが問題を引き起こすかはわかりません。請求書明細を取ります。ネストされた広告申込情報で、各ドキュメントをドキュメントコレクションに保存することができました。もちろん、私はまだ文書、支払い、連絡先などのコレクションをいくつか必要とします。そのため、MongoDBのコレクションの使用は私にとって良いものに見えます。

誰も以前にリモートでも同様のことをしたことがありますか?私はまだ設計段階にありますので、MongoDB/RESTの退役軍人のフィードバックを実際に使っています。ありがとうございます。

PS:あなたが不思議に思っているのであれば、RDBMSソリューションを使っても問題ありませんが、代替案を検討したいと思っています。 1つは、MongoDBは、REST APIが動作するJSON/BSONを出力します。第2に、スキーマレスとは、フィールド数が可変の文書を受け取ってすぐに格納することができることを意味します。欠落しているフィールドについては心配する必要はありません(データベースではNULLになり、IsNULL(フィールド名)

答えて

1

整数としての小数点の格納は、人々がやっていることです。あなたは/が2を分割軽減マップと乗算ものないとき要因が複合すること https://jira.mongodb.org/browse/SERVER-1393

注:MongoDBののJIRAで小数点サポート機能要求を通過した場合、あなたはカップルがそれは彼らの回避策だと言及わかりますそのような数以上。

取引の不備は、今日はあなたにとって問題ではないように聞こえますが、明日はどうですか? APIが常に小規模の作業単位を処理する場合は、必ず確認してください。 2段階のコミットも常に可能です。

私は新技術を学ぶのはすばらしいことだと思います。しかし、それらのフィールドを照会する必要があるときには、スキーマレスが本当に輝いていると考えてください。そうしないと、文書やリレーショナルデータベースの1つのブロブ上のフィールド/カラムにすべてを格納することができます。 (しかし、私はプロジェクトを見たたびに3か月後に彼らは一連の値を照会/報告/何かを開始する必要があり、それは本当の痛みです)。

+0

ありがとうございました。将来の取引ニーズを指摘する。キー/値ストアはオプションではないので、フィールドについて多くのクエリを実行します。私はjiraのfeat要求をフォローしています(数日前にコメントを追加しました)が、すぐにfeatを実装しようとしているようには見えません(そして2010年からそこにいました)。 –

関連する問題