将代码(PHP/HTML/SQL)放入数据库的利弊? [关闭]
Posted
技术标签:
【中文标题】将代码(PHP/HTML/SQL)放入数据库的利弊? [关闭]【英文标题】:Pros and Cons putting codes (PHP/HTML/SQL) inside database? [closed] 【发布时间】:2012-12-19 14:15:32 【问题描述】:我想把它做成 wiki,但我太陌生了。好吧,这是场景:
我的公司有一个“框架”,可以让用户更快地建立网站。 “框架”在很大程度上依赖于数据库,它将在数据库中检索各种 html、php、javascript 并将其输出。例如:
/**
* create_product.php
*
*/
$page_id = 104;
include(output.php);
/**
* output.php
*
*/
SELECT output FROM table_with_outputs where id = $page_id;
真实的场景有点复杂,但想法就在那里。我发现很难维护这样的代码,因为几乎所有内容都存储在数据库中。我不能简单地找到一个 .php 页面来调试它。当我们说它很难维护时,我的上级认为它很灵活,可以更轻松地添加/编辑 UI 元素。除了难以维持之外,还有什么相反的论点?
【问题讨论】:
你只显示它吗?或执行它?如果执行:永远不要这样做 这是一个可怕的想法。速度慢、难以维护,而且您会通过 SQL 注入让自己面临难以置信的攻击范围。 @GeertJaminon:甚至存储了 SQL,用于插入/显示数据。 至少,你的“wiki编辑器”可以生成html文件。在硬盘上存储和管理它们。 @tvanfosson:我在这个站点的某个地方看到了安全问题,但我认为他们永远不会听。也许是因为我们建立的网站,将在局域网上使用。 【参考方案1】:一方面,这不是更灵活,因为 HTML/PHP/JavaScript 文件可以更容易地添加到文件系统而不是数据库。 使用文件系统是
更安全 更快 更简单 需要更少的工具(根本不需要工具) 更容易备份和恢复为此使用数据库很糟糕,因为(我猜与之前的列表相反):
它使调试更加困难 显着降低数据库的性能 违反了关注点分离原则 使其更难部署 需要额外的部署工具和该工具的维护它增加了总拥有成本。
【讨论】:
最重要的是,您不能以任何理智的方式使用版本控制。一个在没有版本控制的情况下编写代码的团队是疯狂的秘诀。以上是关于将代码(PHP/HTML/SQL)放入数据库的利弊? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio与其IntelliJ IDEA相比,其差异与利弊主要都有哪些