最佳的网站配置数据存储方式是什么?

4
我有一个关于存储网站配置数据的问题。
我们有一个面向Web应用程序的平台。其想法是不同的客户可以将其数据托管并显示在自己的网站上,该网站位于此平台之上。每个网站都有一个配置,确定哪些与客户相关的面板出现在哪些页面上。
最初设计的系统是将每个站点的所有配置数据保存在数据库中。加载站点时,所有配置数据都加载到SiteConfiguration对象中,并根据该对象的内容生成客户端面板。这样做可以实现,但我发现很难处理更改请求或添加新站点,因为需要筛选大量数据,并且难以维护站点及其配置的心理模型。
最近,我被指定开发一些站点的子集,以生成PDF文档进行打印。我决定采取不同的方法来定义配置,即不是将配置数据存储在数据库中,而是编写XML文件以包含数据。我发现这样做比阅读与其他无意义的数据相关的无意义数据行要容易得多,因为我有具有语义的可读信息的有意义文档,并且关系由可视化可理解的元素嵌套定义。
因此,现在有了这两种存储网站配置数据的方法,我想听听有经验的人对处理这个问题的看法。存储网站配置数据的最佳方法是什么?是否有比我在这里概述的两种方法更好的方法?
注意:StackOverflow告诉我,该问题似乎是主观的,并可能会关闭。我不想主观。我想知道下一步如何最好地解决此问题,如果具有行业经验的人可以提供一些输入。

FYI - Stack Overflow会告诉你这个问题似乎是主观的,因为标题中包含“最佳”一词...而且你正在寻求意见,这就是主观的定义,在我看来。 - Jon
“最好的方法”在定义上是主观的,对于一个问题,在其中有太多的情境特定和影响性变量。 - Matt Mitchell
1
你所说的配置是指内容和网站结构吗?将这些数据放入表格中并没有什么问题,只要你有一个(用户)界面来执行维护子网站所需的任务。使用管理工具并不是做这件事情的正确方式。 - Ralf de Kleine
@rdkleine,是的,配置站点和结构。我向老板建议做一个UI,但他们否决了这个想法(因为钱),但我会再次提出来!@Graphain和@Jon,我想根据定义它是主观的,但我不想引发争论!! :-) - DaveDev
使用SQL来维护网站比使用UI需要更多的时间。而时间就是金钱... - Ralf de Kleine
3个回答

0

如果需要为每个客户特定的配置提供信息,最好在数据库中进行,并编写一个管理工具,以便非技术人员也可以管理它。此外,当您需要对其进行版本控制/历史记录时,这样做会更容易。XML 在这方面并不总是最好的选择。而且 XML 对于非技术人员来说最终难以维护。

您是否每次从磁盘读取 XML(性能受损),还是将其缓存在内存中?无论您选择哪种解决方案,缓存对性能的影响都很大。

Grz,Kris。


我目前每次从磁盘读取xml,但如果需要,将数据存储在缓存中很容易。该系统的这个子集仅定期运行,因此目前磁盘性能并不是真正的问题。 - DaveDev

0

你正在使用ASP.NET,那么对于基本设置,web.config有什么问题(如果是每个项目部署),然后如你所说,对于任何更复杂的设置(或者如果您有多个用户/客户端使用相同的项目部署),可以使用自定义XML或数据库配置设置?

我只会在像“站点布局文档”这样的东西中使用自定义XML文档,其中事物不会经常更改,并且您将拥有大量半无意义的数据(例如23553123)。而且布局应该尽可能由CSS处理。


每个文件大约20kb,因此将其存储在web.config中并不实际。不过我明白你的意思。 - DaveDev

0
对于我们的团队来说,XML是一个不错的选择(app.config或web.config或自定义配置文件,这取决于情况),但有时最好设计配置API以在代码中进行配置。例如现代IoC容器具有使用流畅接口的内部配置API。如果您需要配置许多相似的实体或想要实现良好的人类可读性,则此方法可以带来好处。但是,如果非程序员需要进行配置,则此方法无法奏效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接