2017-01-14 46 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将其作为对象存储在数据库中。

不仅可以让您灵活地在以后添加更多字段,而且不会限制数据类型。

在某些情况下,这可以派上用场。

相关问题