【问题标题】:Pros and Cons putting codes (PHP/HTML/SQL) inside database? [closed]将代码(PHP/HTML/SQL)放入数据库的利弊? [关闭]
【发布时间】: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:我在这个站点的某个地方看到了安全问题,但我认为他们永远不会听。也许是因为我们建立的网站,将在局域网上使用。

标签: php database-design maintenance


【解决方案1】:

一方面,这不是更灵活,因为 HTML/PHP/JavaScript 文件可以更容易地添加到文件系统而不是数据库。 使用文件系统是

  • 更安全
  • 更快
  • 更简单
  • 需要更少的工具(根本不需要工具)
  • 更容易备份和恢复

为此使用数据库很糟糕,因为(我猜与之前的列表相反):

  • 它使调试更加困难
  • 显着降低数据库的性能
  • 违反了关注点分离原则
  • 使其更难部署
  • 需要额外的部署工具和该工具的维护

它增加了总拥有成本。

【讨论】:

  • 最重要的是,您不能以任何理智的方式使用版本控制。一个在没有版本控制的情况下编写代码的团队是疯狂的秘诀。
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2015-09-21
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2011-05-14
相关资源
最近更新 更多