现在我正在编写一个用于与数据库交互的层,以便如果以后与数据库交互的方式发生变化,我只需要更改一个层,而不是我创建的X个插件。
我感觉其他人可能也曾经遇到过这种情况,我的方法可能效率低下。
我正在编写诸如:
Table
Column
Row
这使我能够使用给定的对象和特定的方法来处理它们的所有功能,创建数据库表、列和行:
$column = new \Namespace\Data\Column ( /* name, type, null/non-null, etc... */ );
$myTable = new \Namespace\Data\Table( /* name, column objects, and indexes */ );
\Namespace\TableModel.create($myTable);
我的问题是...
是否已经有人写过一些东西来提供不同层次之间的分离?
如果没有,那么我的方法从长远来看是否有帮助,或者我是在浪费时间;我应该像其他人一样分解并硬编码sql吗?
如果自己编写确实有帮助,那么我可以采取哪种方法来更有效地处理它?