2010-12-20 10 views
1

私はFacebookのニュースフィードに似たニュースフィードを持っています。MySQLからJSONデータツリーを取得する

これは、MySQLの「直線」行ではなく、ブランチの長さ(および内容が異なる)が異なるデータの「ツリー」によく似ていることを意味します。

私がまっすぐ行くと、PHPのネストされたサイクルがたくさんあります。ニュースの種類ごとに異なるデータセットが必要なためです。ニュースフィードの

例: 1)ユーザー "")..私はimage_path_2などUSER_NAME、user_avatar、image_path_1を取得する必要があり、ここで(2枚の新しい画像を追加しました 2ユーザー "B" は、ユーザーの "A" にコメントしています)画像(ここで私はユーザーの "B"名前、ユーザーの "B"アバター、image_path、comment_text、ユーザーの "A"という名前などが必要です)

私がしたいことは、MySQLストアドプロシージャからJSON形式に変換されたデータを取得することです。

{"news": 
      [ 
       {news_type: "new_images", user_name: "john", user_avatar: "0002.jpg", image_path: "/images/00123.jpg"} 
       {news_type: "comment", user_name: "john", user_avatar: "0002.jpg", comment: "hello!"} 
      ] 
     } 

私は「連結」と「GROUP_CONCAT」でのMySQLでこの変換を行うことができます...私はちょうどそれは良いアイデアだかどうあなたの意見をお願いしたいと思います - そして、より良い方法は何で、そうでない場合。

ありがとうございました!

UPDATE ので最終的に私はMongoDBのに切り替え:)

+0

あまりにも難しいですか? ))//// – oyatek

答えて

3

これは賢明ではないでしょう。データベース作業のためにデータベースサーバーを使用する必要があります。

PHPは、連想配列に渡すだけで自動的にjson_encode()ですべてのJSONエンコーディングを行います。ホイールを改造したり、データベースサーバーを壊したりすることはありません。

0

ストリーム出力タイプを使用すると便利です。アンマーシャリング/マーシャリングの削減です。また、PHPとJavaのコンシューマーをサポートする必要がある場合は、より多くのデータ処理を行います。出力ストリームをフックしてストアドプロシージャを呼び出すのは、あまり仕事がないように思えます。

関連する問題