背景:
我开始设计一个新的网站来跟踪大量的项目的工作流程。每个项目都有分配给他们的阶段(计划、实施、实施后、结束等)。每个阶段都包含不同的任务,等等。
有些人可能会问,“这听起来与其他已经存在的工作流管理软件(WMS)非常相似,为什么不使用它呢?”
除了这个站点像其他WMS工具一样跟踪每个阶段之外,它还需要直接从页面与其他系统(不同域)和软件(API/WMI)进行交互。它将允许我们的管理员维护Active Directory GPO,确保用正确的设置正确初始化新计算机,在远程计算机上监视SQL数据库保真度等等。对于那些认为这对问题很重要的人来说.我现在正计划用.NET来建立这个网站。
正如你们中的许多人所知道的,在商业世界中,项目和标准在快速变化。因此,我期待使这个网站在每个阶段和任务尽可能的动态和快速变化。例如,同事可能需要对以前没有定义的每一个项目执行额外的任务。然后,我们将需要能够快速更改所有当前开放的项目条目和所有新项目的前进,以添加新的项目到核对表。
问题:
在每个人的经验中,您发现什么是存储大量需要频繁更改新数据的最佳方法?
最初的想法:
SQL /数据库存储:
优点:
缺点:
XML / YAML /任何标记语言
优点:
缺点:
最后评论:
我倾向于使用SQL/数据库存储,但不认为对设计/框架的更改是一个快速的壮举。如果有任何方法的数据存储,我没有,这可能是一个潜在的更适合的解决方案,请告诉我。
谢谢大家。
发布于 2017-01-16 17:33:03
需要更多的详细信息来推荐一些特定的存储。但是从您的描述来看,一个项目看起来像一个文档,包含许多属性和子项目,如下所示:
{
"id": 43233,
"name": "MyProject",
"created": "02/01/2017",
"owner": {
"id": 32132,
"name": "John Smith"
}
"tasks": [
{
"id": 43243,
"name": "Task1",
"priority": "high",
"status": "new"
},
{
"id": 43253,
"name": "Task2",
"priority": "low",
"status": "done"
}
]}如果您的应用程序不需要跨项目提出大量请求,并且主要处理一个项目,那么文档数据库可能更适合您。文档数据库(如MongoDB、CouchDB、Azure Document等)对数据模式的限制较少,并且通常比SQL数据库的扩展性要好得多。
因此,您可以更容易地更改添加新属性的项目对象架构。检索项目对象也要容易得多--为了“构造”项目,您不需要做大量的SQL联接。
关于性能:这取决于您将如何使用DB。对于上面的例子,您将拥有:
https://stackoverflow.com/questions/41679538
复制相似问题