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

Database 将选项存储在数据库或文件中?,database,file,configuration,Database,File,Configuration,在客户机-服务器数据库应用程序中,客户机需要从存储它们的服务器读取哪些不同的选项?在数据库中或某个文件中,然后将在网络上传输,或者是否有更好的方法。这取决于具体情况 一般来说,在服务器上存储文件(除了图像、视频、歌曲等文件本身)而不是数据库中的内容很少 例如,如果您正在存储客户端首选项,您可以将它们存储在客户端上的一个文件中,但这存在可移植性问题(因为配置文件设置不会转到具有相同用户的另一台PC),但如果客户端可以“脱机”使用,则可能是合适的 这两种方法中最好的一种可能是将内容存储在服务器上的数

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

这取决于具体情况

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

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


这两种方法中最好的一种可能是将内容存储在服务器上的数据库中,并将其缓存在客户端(可能以文件的形式),以允许脱机使用(如果适用于所讨论的应用程序)。

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

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

如果将它们放在数据库中,客户端可以看到更改,而无需编辑文件。他们马上就能看到价值观。不需要服务器反弹。您还可以使用数据库权限分配访问权限


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

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

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

这取决于许多因素:

  • 你有多个前端吗 服务器,然后是数据库方法 需要较少的维护
  • 如果你有一个开发人员,QA和 Prod环境,然后是文件 方法与配置一样有意义 将不会在 从复制/还原数据库 其他环境之一

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


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

    不要创建新答案;编辑您的原始帖子或作为评论输入。