2011-11-07 11 views
1

私はjsonをSQLに変換できるPHPのライブラリを探しています。 つまり、いくつかの定義またはスキーマに基づいて、挿入/更新文を生成する必要があります。Json to SQLの翻訳

誰でもこのようなライブラリを知っていますか?私は検索エンジンをほとんど求めず、何も飛び出さなかった。

例:

JSON

{ 
    "person_id": 1, 
    "name": "John Doe", 

    "roles": ["admin","editor","regular_user"], 

    "friends": 
    [ 
     {"person_id": 10, "name": "Johny Walker", "is_best_friend": true}, 
     {...} // more friends 
    ] 
} 

表構造:

Persons: person_id (int), name (text) 
Roles: person_id (int), role (text) 
Friends: person_id (int), is_best_friend (bool) 

これはほんの一例です。

私が気にしているのは、XSLTのような変換です。私はそのようなシステムはかなり複雑であることを理解していますが、この単純な例は問題なく翻訳できます。

私は自分でそれを実装することを考えていましたが、私は怠け者ですから、まず尋ねます。

JSONの高度な処理は、参照と同様に、(可能性のある制限付きで)リレーショナルテーブルにうまく収まるように実装することもできます。

+0

何ですか?質問を更新してテキストを追加できますか?あなたはモデルからモデルへの変革について話しますか? – FloydThreepwood

+0

これは本当にあなたの質問に対処するのではなく、[CouchDB](http://couchdb.apache.org/)のようなドキュメント指向のデータベースを検討していることを認識していますか? –

+0

@Mike Steinert - はい、私がやっていることとうまく行きません。 – Peter

答えて

2

SQLデータ構造は単純で厳密な "ハードコーディング"構造を持ちますが、JSONはオブジェクトを格納することができます。オブジェクトは互いに継承されます。そのようなツールが存在するとは思わない。 IDでも、それは多くの制限があります。

+0

hm、何かを見つけました - https://github.com/hay/json2sql – Casey

+0

これは、配列を一連のINPUTステートメントにマップできる単純なスクリプトで、マルチテーブルのサポートではなく、スキーママッピングがありません。 – FloydThreepwood

0

本当に検索する必要があるのはORMです。

典型的なプログラミング構成は、SQLの動作と大きく異なります。これはObject-relational impedance mismatchと呼ばれます。オブジェクトまたは配列構造体をデータベース・スキーマにマップまたは変換しようとすると、すべての値について2つのデータ構造とルールセットに関する知識が必要なため、些細な作業ではありません。

+0

ありがとう、私は現在、ドクトリンを使用しています、それを好きではない、いくつかの狂ったアイデアを研究しています。 – Peter

+0

Doctrineも使用していますが、私はあなたにポイントを取得します。しかし、フレームワークになり、完全な混乱にならないように十分に広範なものを想像することはできません。 – FloydThreepwood