背景
我开始构建/设计一个新网站,该网站将跟踪大量项目数量的工作流程。每个项目都会分配相位(计划,实施,实施后,关闭等...... )。每个阶段都包含不同的任务等。
有些人可能会问," 这听起来与已经存在的其他工作流程管理软件(WMS)非常相似,为什么不使用它?"
除了像其他WMS工具一样跟踪每个阶段的网站之外,它还需要直接从页面与其他系统(不同的域)和软件(API / WMI)直接交互。它将允许我们的管理员维护Active Directory GPO,确保使用正确的设置正确初始化新计算机,监视远程计算机上的SQL数据库保真度等等。对于那些认为对这个问题很重要的人......我目前正计划使用.NET构建网站。
正如你们许多人所知,项目和标准在商业世界中迅速发生变化。因此,我希望在每个阶段和任务方面尽可能使这个网站充满活力和快速变化。例如,员工可能需要对之前未定义的每个项目执行额外任务。然后,我们需要能够对所有当前打开的项目条目和所有新项目进行快速更改,以便将新项目添加到清单中。
问题:
在每个人的经验中,您发现什么是存储需要经常更新数据的大量数据的最佳方式?
初步想法:
SQL /数据库存储:
优点:
缺点:
XML / YAML /任何标记语言
优点:
缺点:
最终评论:
我倾向于SQL /数据库存储,但是没有看到设计/框架的变化是一个快速的壮举。如果我遗漏了任何可能更适合解决方案的数据存储方法,请告知我们。
谢谢大家。
答案 0 :(得分:2)
需要更多详细信息来推荐您一些特定的存储空间。但是根据您的描述,项目看起来像具有许多属性和子项的文档,如下所示:
{
"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文档数据库等文档数据库对数据模式的限制较少,并且通常比SQL数据库扩展得更好。
因此,您可以更轻松地更改项目对象架构,添加新属性。检索项目对象也会更容易 - 你不需要做很多SQL连接,以便构建"项目
关于性能:这取决于您将如何使用DB。对于上面的示例,您将拥有: