1

我有一个名为 Vehicle 的 PHP 类,它管理与汽车、摩托车和卡车有关的一切。我有一百多个与汽车、自行车、卡车表中的每个数据库字段相关联的私有变量。

例如:一辆车有:-油耗-最大马力-最大扭矩..等等..所以我有数据成员

private $fuel;
private $horsepower;
private $toque;

当我进行数据库查询以通过 id 查找汽车时,我将所有行存储在其相应的变量中。

car 表有大约 50 个字段,bikes 表有 30 个字段,而卡车有 30 个字段。所以有超过110个数据成员。

有没有更好的方法来做到这一点?

4

3 回答 3

3

继承和多态是你的朋友!汽车应该是一类(有 50 个属性),自行车 - 另一个(30 个属性),卡车 - 另一个(30 个属性)。它们都应该扩展 Vehicle 基类

于 2012-04-30T21:24:15.717 回答
1

您可以尝试延迟加载:在构造函数(或任何获取汽车 id 的函数)中,您只将 id 存储在类中,并且对于每个其他变量,您只在真正需要时从数据库加载它。

于 2012-04-30T21:24:59.290 回答
0

除了代码管理之外,变量的数量很少有影响。利用多态性的面向对象编程是保持域对​​象井井有条的第一步。一旦你有了它,你可以研究一个 ORM(对象关系映射)来获取和从 db PHP Active Record获取变量将是一个很好的起点。

另外,当您说“自行车有 30 行”时,您的意思是字段,对吗?通常,如果您有一个用于“自行车”的数据库表,则每一行都是不同的自行车,每个字段都是给定自行车的不同属性。

于 2012-04-30T21:27:24.370 回答