2016-04-04 10 views
0

私はPostgresのJSONB機能を使ってテーブル/データベースを構築しています。私の質問は、それに対してテーブル/クエリをどのように構造化するかについてです。ユーザーのような外部キーを備えた別のリレーショナル列を追加する方が速いのですか? JSONデータにユーザーを格納し、JSONクエリにそのデータを含めるだけです。Postgres JSONBテーブルのクエリ構造ですか?

例:

| userID |   json   | 
|  1  |  { 'userID': 1,  | 
|   |  'something': 5 } | 

それとも単に:

|   json  | 
| { 'userID': 1, | 
| 'something': 5 } | 

答えて

1

あなたは真の外部キーをしたいかどうかは少し異なります。あなたは実際にjson->userIdに外国取得を作成することはできません。高速結合のために索引付けできるようにするには、json->userIdに機能索引を作成するか、文書全体にGIN索引を作成できます。

実際に外部キーを作成し、そこに適切な制約を設定する場合は、実際の列に変換する価値があります。