-2

次のスキーマを持つMySQL5.0データベースがあります。

データベーススキーマ

サーバー/単語へのajax呼び出しを行うWebアプリケーションで使用しています。ここでは、PDOを使用してデータベースにクエリを実行し、jsonを返します。ここでの私の目標は、次のような結果のjsonを取得することです。

[ //array of words
{
"word": "...",
"fonetics": "...",
...
"meanigngs":[] // array of meanings (objects)
"inflections":[] // array of inflections
"examples":[]
},
...
]

これを実現する1つの方法は、データベースを複数回クエリし、テーブルごとにクエリを実行してから、phpでjson構造を操作することです。私はそれがあまり良くないことを知っていますが、私は主にフロントエンドの人であり、MySQLについてはあまり知りません。また、必要なテーブルで構成されるビューを作成することも考えていました。

最善の解決策を教えていただけますか、あるいはビューを作成したり、データベースから必要なデータを取得したりするmysqlを作成することもできますか?

4

1 に答える 1

0

すべてのデータが必要で、説明したとおりにオブジェクト階層で構造化する場合は、アプリケーションレベルで行うのがおそらく最善の選択肢です。word_idクエリ結果の連続する行からサブ配列の値を取得できるように、必ずテーブルを並べ替えてください。

代替案は次のとおりです。

  • サブアレイごとに1回データベースをクエリします。これにより、構造の構築がはるかに簡単になり、クライアントのメモリ消費量が削減される可能性がありますが、クエリの数がはるかに多くなります。これを行う場合は、必ず準備されたステートメントに進んでください!
  • テーブルを結合して、1つの大きなビューを作成します。これは、特に、意味と語尾変化の間のすべての組み合わせなど、かなり無関係なテーブルの間に完全な外積を含めるため、データを大幅に複製します。間違いなくここに行くルートではありません。
于 2012-12-07T13:57:06.707 に答える