【发布时间】:2011-07-23 09:07:14
【问题描述】:
我正在和一位同事讨论设计问题。
我们正在实现一个 PHP MySQL 数据库应用程序。在第一个实例中,我们为特定表编写了 Insert Get Update Delete、SelectAll 和 Search 函数,在代码中编写了表和字段名,以及几个 php 文件,一个用于对象类,一个用于绘制 HTML 表表,一个用于编辑该表的一行,一个包含上述函数等。
分歧来自于我现在编写了从数据库读取/写入的通用函数,并以表名作为参数绘制 HTML,让这些函数从数据库或类中发现字段名。因此,现在该代码可以用于任何表,任何字段,而无需手动更改需要更改的每个函数。我知道在某些情况下需要更多特定于表的功能,我认为这应该在需求出现时完成,并尽可能集成公共部分。
另一方面,我的同事坚持我们应该为每个表保留一组文件,即每个表大约有 5 个 php 文件。在每种情况下,读/写函数的编写方式不同,所有表所需的任何更改都需要影响 5 x 表数量的次数。
我可以肯定地说,数据库中至少有 15 个以上的主表需要基本功能。
您认为哪种方法最合适?
【问题讨论】:
-
为什么你的同事坚持要为每个表保留一组单独的文件?
-
他说,对于每个表和用例,数据访问和可视化将有很大不同,将表名、类名或字段名等作为参数传递的变量,而不是仅仅在 SQL 语句中明确写出,将最终需要太多的 if/switch 结构来管理,并且为每个表保留一组不同的代码,即使是“SELECT * FROM Table”和绘制 HTML 表这样的事情,从长远来看更容易维护。
-
@alex:他说的对吗?他知道什么你不知道? (我与顽固的设计师和程序员打交道的一般规则是,在我理解他们的无知之前,我认为自己对他们的理解一无所知。)
-
如果是这样,我无法理解为什么会出现这么多“框架”。我通常认为这是自然的进展。结果,我不打算为自己构建一个成熟的框架或 phpMyAdmin,而是逐步实现必要的功能,使事情尽可能通用而不是太复杂,而不是复制和粘贴具有不同字段名的相同功能每个新表。
-
我们决定先不使用现有的框架,尽管我们快速浏览了一些,因为我们有一段时间没有做过 PHP 项目并且不想了解在我们展示 2 个表格之前,框架的特定架构和库。如果我们更熟悉他们的工作和方式,我们可能会转向一个。
标签: php mysql database-design web-applications