0

データベースから非常に複雑なレポートを実行しています。これまでのところ、複雑な json オブジェクトを返し、javascript がレポートをレンダリングしていました。しかし、この json オブジェクトの作成が増えるにつれて、非常に長い時間がかかります。

これを別のアプローチに置き換えることを考えています。ユーザーがレポートを生成するためのリクエストを作成すると、サーバー側のプロセスが json を生成し、後で使用するために保存できます。ユーザーにはリンクが電子メールで送信されます。

データベースにjsonオブジェクトを保存するのは安全な方法ですか? 保存する主な理由は、ユーザーがレポートを実行しようとしている列が固定されないためです。むしろ NoSql に行くべきですか?

前もって感謝します 。

4

2 に答える 2

1

あなたが言及する特定のケースでは、RedisなどのKey-Valueストアを検討する必要があります。たとえば、user_id->json_objectを保存できます。Key-Valueストアは、キャッシュに最適です。これは、基本的に、実行しているように聞こえます。

一般的なケースでは、JSONを保存することは可能ですが、重要なことが1つ失われます。それは、SQLクエリでデータのセマンティクスをどのように使用するかが明確でないことです。たとえば、次のようなレコードを保存するとします。

{'color': blue, 'height': '40px'}  
{'color': blue, 'height': '50px'}  
{'color': red, 'height': '40px'}  

データベース内の文字列として。

色が「青」のすべての要素を識別したい場合、唯一のオプションは、各文字列要素で文字列「%blue%」を検索することです。これはコストがかかり、エラーが発生しやすくなります。JSONを分割してデータベースとして保存するか、ある種のキーと値のペアまたは他のストアに移動することを検討してください。

于 2012-09-05T00:12:58.447 に答える
1

JSON をデータベースに保存することは安全なはずです。JSON は単純なテキストなので、その意味では、このアプローチに問題はないと思います。

于 2012-09-04T23:59:43.903 に答える