用于存储用户设置的有用架构是什么?

时间:2015-09-21 13:53:26

标签: php database-design laravel-5

我想存储一些用户设置,我想到了3个选项,因为它是我的第一个项目,我想以正确的方式启动它,我无法弄清楚哪个是最佳方式这样做..

  1. 直接在用户表中的列中存储单个设置

  2. 拥有一个user_settings表,其中包含列setting_name,setting_value和user_id

  3. 在用户表中,在名为" user_settings_json"

  4. 的列中存储JSON字符串

    在设计分析中,我注意到wordpress将它存储在一个单独的表中,但我不确定每个应用程序是否需要(因为我的用户设置几乎没有wp那么多)

    我正在使用Laravel,PHP,javascript / jquery。

    在设计,可维护性和性能方面,您认为哪个最有用,总体上更好?

1 个答案:

答案 0 :(得分:4)

存储JSON字符串?不!

您希望能够隔离设置,只需查询您需要的内容。因此,请将其保存在单独的列中!

关于你是否必须单独制作一个表的问题,不,你不必这样做。当您只是进行一些简单设置时,您只需将列添加到现有用户表中即可。请注意这里的限制。如果您确实需要高级设置,我建议您使用单独的表格。最好太早做。并非每个设置都适用于每个用户。例如,当您拥有可以拥有更多设置的高级帐户时。因此,保持它是分开的是我会做的。

顺便说一句,我不会让这些专栏开头设置_'如果他们已经在一个单独的表中,其中包含'设置'在名称中。

结论:选项2:)