将代码(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,但我太陌生了。好吧,这是场景:

我的公司有一个“框架”,可以让用户更快地建立网站。 “框架”在很大程度上依赖于数据库,它将在数据库中检索各种 htmlphpjavascript 并将其输出。例如:

/**
 *  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)放入数据库的利弊? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

转Data URL和图片,及Data URI的利弊

Android Studio与其IntelliJ IDEA相比,其差异与利弊主要都有哪些

可以编写代码的代码:代码生成的利弊

Mysql 查询缓存利弊

Wireshark vs Firebug vs Fiddler - 利弊? [关闭]

如何将数据放入事实表中?