Database 用于存储解决方案的数据库与静态html文件(站点生成器)

Database 用于存储解决方案的数据库与静态html文件(站点生成器),database,file,asp.net-mvc-4,storage,Database,File,Asp.net Mvc 4,Storage,项目描述: 作为asp mvc 4的学习练习,我正在创建一个站点生成器/多租户站点。在模板上进行wysiwyg编辑,通过自定义路由将用户引导到基于子域的正确模板,这一点也不奇怪。因此,usr1.mysite.com被定向到由usr1编辑的模板。目前我主要关心的是存储编辑过的模板的方法 存储困境: 起初,我只是将模板制作成视图,并将用户所做的更改存储在数据库中。当显示usr1的模板时,系统将调出视图并用usr1的数据填充它 相反,我实现了一个系统,它接受用户修改过的模板,并将整个内容保存为文件系统

项目描述:
作为asp mvc 4的学习练习,我正在创建一个站点生成器/多租户站点。在模板上进行wysiwyg编辑,通过自定义路由将用户引导到基于子域的正确模板,这一点也不奇怪。因此,usr1.mysite.com被定向到由usr1编辑的模板。目前我主要关心的是存储编辑过的模板的方法

存储困境:
起初,我只是将模板制作成视图,并将用户所做的更改存储在数据库中。当显示usr1的模板时,系统将调出视图并用usr1的数据填充它

相反,我实现了一个系统,它接受用户修改过的模板,并将整个内容保存为文件系统中的静态html文件。数据库中只保存到usr1站点的路径(以及一些其他详细信息)。当调用usr1.mysite.com时,我只有一个“内容”控制器来检索正确的html文件

问题:
是否有任何理由选择数据库/视图方法而不是静态html文件方法? 另外,我不关心最终用户页面中的动态内容。这也是我尝试file方法的原因之一

决策(编辑):

我正在实现file方法。经过更多的研究(验证我以前的研究),我几乎不怀疑文件系统会在几百个站点上出现问题。我将根据我还没有想到的命名约定将用户数据目录分组到组目录中,可能类似于000usr1、000usr2 in 000 group directory。目标是在任何给定目录中少于100个文件/文件夹,深度少于4级。这将使我有能力拥有10000个站点。我没有计划用这个软件进行任何接近这个级别的活动,但我确实想启动并运行它,折磨它一段时间,看看它能处理什么。如果有人对此感兴趣,我会发回一些结果。

文件在内存、cpu和I/O方面通常比数据库便宜得多。数据库在添加特性(版本控制、审核等)方面更加友好。明智地选择你的毒药:)这是一个艰难的决定。我现在倾向于使用文件方法,因为我已经有了它,但我确实想知道,如果它变成一个超越个人学习练习的项目,它的可维护性会有多高。