1

レポート生成がサブアプリである F3 を使用してアプリケーションを開発しています。今、私は大きくなるjsonデータの形でレポートを持っています。

問題は、JSON データが複数のレベルにあり、そのスキーマを定義するのが難しいことです。

さて、JSONをファイルとして保存する方法について何か提案はありますか? またはmysqlデータベースでブロブまたはテキストとして?

注:レポート(PDF、Excelなど)を生成するためだけにJSONデータを使用します。私は決してそれを変更しません。

ありがとう、サッシュ。

4

1 に答える 1

1

その JSON データを読み取り専用の素材として使用して PDF を作成する場合は、次のようないくつかの要素に依存します。

  • JSON 形式のオブジェクトはいくつありますか? それらを文字列化して保存することは、それほど問題ではありません(重複状態としてマークした質問のように)。もちろん、何千もの JSON 文字列について話している場合は、そのテーブル (それらのテーブル) にインデックスを付ける必要があり、実際のデータとは無関係の一意の ID を使用するか、文字列を解析し、いくつかのプロパティを使用して、クエリに使用できます。

  • あなたは、JSON オブジェクトがかなり大きい (TEXT/BLOB フィールドについて話しているため) と言い、最大 65,000 文字を保持できます...文字数の半分、20% を使用するつもりですか?当時の?? 正直なところ、やり過ぎのように感じます

  • JSON の構造はどのように変化しますか? 一方のオブジェクトは単純な JS スタイルのオブジェクト リテラルで構成され、もう一方のオブジェクトは 7 レベルの深さのネストされたオブジェクトですか? すべてのオブジェクトが特定の構造を共有している場合、おそらくスキーマの構築がうまくいくでしょう。

  • あなたがそれに慣れているのか、それともあなたの場合のオプションなのかはわかりませんが、そのテーブルに頻繁に書き込むことはなく、すべてJSON形式であるため、別のDBシステムを調べてみませんか? しばらく経ちましたが、役立つ可能性のあるmongoDBを使用してきました。

要約: JSON オブジェクトが 10 個までしかない場合: それらを単純なテーブルに VARCHARS (または TEXT) として保存し、必要に応じて id フィールドを追加します。もちろん、単純なファイルでも構いません。MySQL サーバーに接続する必要はありません。すべてのオーバーヘッドは必要ありませんfile_get_contents('JSON_DATA1.json');。もちろん、必要に応じて安全対策を講じてください。
大量のオブジェクトがある場合は、MySQL スキーマを構築します...オブジェクトがフォーマットに関する限り本当に類似していない場合を除きます (同じレベルで類似のプロパティはありません)
mongoDB や、おそらく他の NoSQL DB などの代替案を検討してください。 . それらはあなたに役立つかもしれません。たとえば、Mongo はそのデータを JSON スタイルのドキュメントに格納し、JavaScript に似たインターフェイスであるため、非常に簡単に操作できます。

于 2013-04-22T10:53:56.030 に答える