2016-06-12 17 views
2

バックエンドでPHPとMySQLを使用するWebアプリケーションを構築しています。いくつかのユーザーデータ(基本的にJSON形式のオブジェクトのセット)を保存して、アプリケーションのユーザーの「お気に入り」情報を詳細に保存します。私は効率的ではないように私のユーザーデータベーステーブルの単一のMySQLフィールドにこのJSONデータを格納したくありません。サーバー上のJSONファイルにユーザーデータを保存する

私は、サーバー上のフラットファイルにJSONデータを格納し、そのファイルがどのユーザーに関連付けられているかを知るために使用できる一意の識別子を使用することを考えています。私の質問です:10,000人以上のユーザーのためのスケーラブルなソリューションですか?

+0

https://dev.mysql.com/doc/refman/5.7/en/json.html – rjdown

答えて

2

これは、技術的側面とセキュリティの面で、頭痛の原因になりがちです。そして、それほどスケーラブルではありません。それが引き起こす問題について考えてみましょう。サーバーを追加する必要がある場合はどうなりますか?どのようにファイルを同期しますか?何人の人がXYZを好きな人に見えるかなど、複数のユーザーが関わる何かをしたいのであればどうでしょうか?

はるかに優れたオプションは、次のいずれかを実行することです:

  • でお気に入りを保存し、データベースを正規化(関わらず、この部分を行う)と、または
  • 自分のテーブルでお気に入りを置きますJSON列(おそらく間違った答えですが、いくつかのコンテキストで意味があります)

スピードが心配なら、Redis、memcached、または他のシステムを使用していくつかのキャッシングを実装できます。しかし、はまだではありません。それは早すぎる最適化です。あなたがそれを必要とするときにそれを行います。

+0

大きなポイント複数のユーザーを見ることについてのあなたのコメントにはスポットがあります。もともと私はIndexedDBをクライアント側で使用することを考えていましたが、それは複数のユーザー分析をより困難にしています。理想的ではないとしても、私はMySQLのソリューションを見ていきたいと思います。 –

+0

Ed私は、MySQL 5.7がJSONデータをネイティブサポートしていることにも気付きました。私は古いバージョンのMySQL 5.6を使用していますので、JSONの取得/保存をアップグレードしてテストします。 –

+0

@ Yves幸運にも、私は助けることができてうれしいです! –

関連する問題