将选项存储在数据库或文件中?

时间:2009-07-26 14:50:26

标签: database file configuration

在客户端 - 服务器数据库应用程序中,客户端需要从服务器读取的不同选项,您要在哪里存储它们?在数据库或某个文件中,然后将在网络上传输,或者有更好的方法。

6 个答案:

答案 0 :(得分:1)

具体取决于具体情况。

一般来说,在服务器上的文件中存储的东西很少(除了文件本身,如图像,视频,歌曲等),而不是数据库。

如果您正在存储客户端首选项,那么您可以将它们存储在客户端上的文件中,但这会产生可移植性问题(因为配置文件设置不会转到具有相同用户的另一台PC)但它可能是适用于客户端可以“离线”使用。

两个世界中最好的一点是将内容存储在服务器上的数据库中并将其缓存在客户端上(可能在文件中)以允许脱机使用,如果这适用于相关应用程序。

答案 1 :(得分:1)

取决于对值的动态访问方式。

将它们放在文件中意味着必须编辑文件以进行更改。您必须编辑该文件,可能使用新值重新打包应用程序,然后退回服务器。如果您在服务器上使用代码的爆炸版本,则意味着在服务器上授予客户端写入权限,这可能会有问题。

如果将它们放在数据库中,客户端无需编辑文件即可查看更改。他们马上就能看到价值观。无需服务器退回。您可以使用数据库权限进行访问。

更新:另一个想法 - 是所有用户或仅一个人的选项?如果它是前者,你必须担心“油罐头”,一个用户改变一个值,另一个用户将其切换回来。如果是单个人,则必须为每个用户提供一个文件。庞大的用户群可能是个问题。

答案 2 :(得分:0)

客户端需要只读取一些配置设置,这就是全部。此外,这些选项不会从客户端更改,只能从​​服务器更改。

答案 3 :(得分:0)

这取决于用例,但我自己的经验表明,最好将选项存储在数据库中。在当今世界,我们需要尽可能地采用无共享型架构。这样,如果明天你让你的应用程序变得安全,你会发现,最好将所有选项存储在数据库中。因为否则您需要在运行应用程序副本的各个节点上同步文件。另一方面,如果它在数据库中,它就在db中,并且大多数db支持高可用性类型的用例,在这种情况下,您不必担心保持应用程序在不同节点中运行的文件同步。

答案 4 :(得分:0)

这取决于许多因素:

  1. 你有多个前端吗? 服务器,然后是数据库方法 需要较少的维护。
  2. 如果您有Dev,QA以及 然后prod环境文件 方法作为配置有意义 不会改变的时候 从中复制/恢复数据库 其中一个环境。

答案 5 :(得分:0)

通常,我会将配置设置存储在数据库中(如果可用)。但是,在我正在工作的项目中,客户端需要从主服务器更新的数据库的多个分布式副本。每个安装都有自己的配置,例如打印机设置。

这种情况下的答案是拥有一个本地配置文件,其中存储了本地用户设置。应用程序为每个设置生成默认值。如果需要,可以编辑文件以便即时更新设置。