2017-01-14 89 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投票;應用程序通常知道鍵並知道相應的數據類型;那麼將值分成不同的列可能會使讀取/寫入數據庫的方式複雜化。

從查詢數據的角度來看,除了檢索具有特定ID的完整用戶記錄之外,我會爲選項2進行投票。這是因爲值的條件將需要選項1中的數據轉換,但不在選項2中。因此,查詢可能變得更容易。

無論如何,如果它只是存儲和檢索完整的用戶記錄,並且你永遠不會或很少查詢用戶的值,還可以考慮將它們存儲爲DB中的json或xml。

+0

對不起,我忘了選項2中的關鍵。 – Juliano

+0

嗯 - 這改變了觀點。看到改編的答案。 –

1

如果你不想使用查詢任意字段:

  • DATA_TYPE
  • value_bool
  • value_int
  • VALUE_STRING

然後我會建議你去選項3:使用JSON/JSONB將其作爲對象存儲在數據庫中。

不僅可以讓您靈活地在以後添加更多字段,而且不會限制數據類型。

在某些情況下,這可以派上用場。

相關問題