2009-07-26 54 views
1

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

回答

1

这取决于具体。

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

如果您要存储客户端首选项,则可以将它们存储在客户端的文件中,但这具有可移植性问题(因为配置文件设置不会使用同一用户转到另一台PC),但它可能会如果客户端可以“脱机”使用,则应该适用。

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

1

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

将它们放入文件意味着必须编辑文件以进行更改。您必须编辑文件,也许用新值重新打包应用程序,然后弹出服务器。如果您在服务器上使用代码的分解版本,则意味着要给客户端写入服务器上的权限,这可能会造成问题。

如果将它们放入数据库中,客户端可以看到更改,而无需编辑文件。他们可以马上看到价值。没有服务器反弹需要。你可以使用数据库权限来释放访问权限。

更新:另一个想法 - 是所有用户的选择还是只有一个人?如果它是前者,你必须担心“油罐头”,一个用户改变一个值,另一个用户改变它的值。如果是单个人,你必须为每个用户提供一个文件。庞大的用户群可能会成为问题。

0

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

+0

不要创建新的答案;编辑您的原始文章或作为评论输入。 – duffymo 2009-07-26 15:06:59

0

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

0

这取决于很多因素:

  1. 你有一个以上的前端服务器 ,那么数据库的方法 需要更少的维修。
  2. 如果你有一个开发,QA以及一个 PROD环境则文件 的做法是有道理的配置 不会被改变时 复制/从其他环境的 一个恢复数据库。
0

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

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