2017-01-14 9 views
0

ユーザ設定をデータベース(PostgreSQL)に保存する最良の方法は何ですか?データベースにユーザ設定を保存する

オプション1:

id  serial 
user_id int 
key  varchar 
value varchar 

オプション2:

id   serial 
user_id  int 
data_type  regtype 
key   varchar 
value_bool boolean 
value_int  int 
value_string varchar 

オプション3:oboveの なし。

答えて

1

"アプリケーションがデータを読み込む"という観点から、私はオプション1に投票します。アプリケーションは通常、キーを認識し、対応するデータ型を認識します。値を異なる列に分割すると、おそらくDBへの読み書き方法が複雑になります。

特定のidを持つ完全なユーザーレコードを取得する以外の方法でデータを照会する観点からは、オプション2に投票します。これは、値の条件にオプション1ではデータ変換が必要なためですがオプション2ではありません。したがって、クエリはおそらくより簡単になります。

とにかく、完全なユーザーレコードを保存して検索するだけで、ユーザーの値を決して尋ねることはほとんどないでしょうし、DBにjsonまたはxmlとして保存することも考えられます。

+0

申し訳ありませんが、オプション2のキーを忘れました。 – Juliano

+0

Hm - これはパースペクティブを変更します。適合回答を参照してください。 –

1

あなたはこれらのフィールドのいずれかを使用して照会することに興味を持っていない場合:

  • DATA_TYPE
  • value_bool

をVALUE_STRING value_int

  • それから私は、あなたがのために行く提案してもよいですオプション3:JSON/JSONBを使用して、これをオブジェクトとしてデータベースに格納します。

    さらに多くのフィールドを後で追加するだけでなく、データ型も制限しません。

    場合によっては、これが便利な場合もあります。

  • 関連する問題