为什么WordPress不使用视图或存储过程

3
我安装了一个 WordPress 博客并在 tinkering 数据库时发现他们没有使用任何存储过程或视图,为什么会这样?还是这仅适用于 WordPress.org 用户和一些付费的 WordPress.com 会员的高级功能?考虑到 WordPress 几乎将所有内容(除媒体文件外)都存储在数据库中,是否不建议使用它们来提高性能?是否有任何资源/尝试优化 wp 数据库使用这些方法?
3个回答

5
关于数据转换/操作的存储位置,这取决于你认为在整个应用程序中哪个接口是数据的中心。如果你是一个数据库程序员,你更可能认为中心点是数据库。在这种观点下,数据是中心,周围的应用程序可以被视为仅仅在数据之上的界面。对于任何数据本身至关重要的情况下,这种观点都是有道理的。例如,数据将随着时间而保留不变,并且访问数据的方式或想要对数据执行的操作会随时间发生变化的情况。适合这种观点的示例包括:金融系统、医疗记录、客户数据、电话记录等几乎任何具有多种查看数据方式并不断增长的内容。
如果你是一个应用程序员,数据本身可能几乎是次要的。在这种观点下,数据是瞬态的。数据的存储位置和方式甚至更不重要。MVC模式鼓励完全可替换数据库,并强烈反对将与基本数据完整性以外的任何逻辑相关的东西放入数据库中。当然,MVC模式或其他应用程序中心开发实践并没有特别反对存储过程或视图,但它们的使用空间要小得多。适合这种观点的示例包括:博客、留言板、独立文档等几乎任何具有非常简单结构,没有复杂关系,并且可以轻松分成自包含单元的内容。任何"你能做什么"与"你正在对其进行操作的概念紧密相关"的情况都适合这种观点。
总之,数据中心工具需要更加重视查看数据,而应用程序中心工具需要更加重视创建数据。另一种看待它的方式是,存储过程和视图只是数据库上的接口。WordPress也是基于数据库的界面,只是用PHP编写的。

4

我不确切知道他们的理由,但我的猜测是因为MySQL实际上将存储过程保存在“mysql”数据库中,而不是WordPress数据库中。这样做可能是出于访问权限的考虑。假设您有一个支持多个WP数据库的DB服务器。所有存储过程都被放入“mysql”数据库中。因此,在备份WP数据库时,您将不会得到任何存储过程。您需要备份mysql(系统)数据库,但在这种环境下,用户可能没有权限这样做,而这是WP安装的典型环境。


1
优秀的回答。此外,我认为从插件编码方面来看,只更新文件系统并尽可能少地进行数据库工作是更容易的。特别是如果插件更新第一次安装不正确,需要恢复文件并重试,那么撤销数据库更改将更加困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接