将父子一对多mysql表转换为面向对象的php类

时间:2016-10-15 19:21:37

标签: php oop

我有两个具有父子一对多关系的mysql表:

CREATE TABLE a (
  id int(11) unsigned NOT NULL,
  a1 varchar(63) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE b (
  id   int(11) unsigned NOT NULL,
  a_id int(11) unsigned NOT NULL,
  b1   varchar(63) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (a_id) REFERENCES a(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我现在想将这个关系数据模型转换为面向对象的类。

我已经为表a创建了一个带有getter和setter的php类:

class A {
    /*
     * @var int
     */
    private $id;

    /*
     * @var string
     */
    private $a1;

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $id
     * @return A
     */
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getA1()
    {
        return $this->wrd;
    }

    /**
     * @param mixed $a1
     * @return A
     */
    public function setA1($a1)
    {
        $this->a1 = $a1;
        return $this;
    }
}

表b中的一个:

class B {
    /*
     * @var int
     */
    private $id;

    /*
     * @var string
     */
    private $b1;

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $id
     * @return B
     */
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getB1()
    {
        return $this->b1;
    }

    /**
     * @param mixed $b1
     * @return B
     */
    public function setB1($b1)
    {
        $this->b1 = $b1;
        return $this;
    }
}

现在我不知道如何将外键a_id转换为面向对象的模型。 我应该在A级还是B级添加一些东西? 有关如何进行的任何建议吗?

1 个答案:

答案 0 :(得分:-1)

在B类中创建私有财产$a和公共getter / setter。然后应该获得/设置A类。