数据库字段的依赖关系

时间:2011-04-13 14:57:20

标签: php database oop smarty

我目前有这种方法:

public function getUser($id) {
    $user = $this->db->getSingleRecord("SELECT user_id,  user_login, user_email FROM users WHERE user_id = ?", $id);

    return $user;
}

我认为这很明显。 $ user是一个关联数组,因此$ user ['user_id'],$ user ['user_login']和$ user ['user_email']将存在。这将传递给Smarty模板,在该文件中,将使用这些键:

login: {$user['user_login']|escape} <br />

这让我想知道......这很好吗?如果数据库字段发生变化,我现在需要编辑2个文件。我可以将方法更改为:

public function getUser($id) {
    $user = $this->db->getSingleRecord("SELECT user_id,  user_login, user_email FROM users WHERE user_id = ?", $id);

    if (empty($user))
      // return empty array
      return $user;
    else
      return array('user_id' => $user['user_id'], 'user_login' => $user['user_login'], 'user_email' => $user['user_email']);
}

如果数据库字段发生变化,我现在只需编辑一个文件(此方法)。我的第一个想法是这种方法要好得多。

另一方面,你真的要照顾这些东西吗?通常,您不会更改这些字段。

最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

考虑模板所需的数据库字段和$user结构的对应关系是巧合。使用您当前使用的那个。如果数据库架构发生更改,请切换到备用架构(无论如何都必须修改方法,以更改查询)。