无法想出更好的数据库建模方法

时间:2015-04-22 09:38:46

标签: php database symfony doctrine

我正在尝试创建一个包含3个表的演示项目:categorymodeltype

可能有不同的类别,例如cellphonetabletscomputer等。对于每个类别,都有不同的类别,例如cellphone可能存在类别asusiphonenokia等。同样,对于每种类型,都有不同的模型:对于诺基亚,可能有nokialumia,{{1如何使用注释在symfony2中创建此数据库?

1 个答案:

答案 0 :(得分:0)

代码并不复杂:

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 */
class Category
{   
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;
    /**
     * @ORM\OneToMany(targetEntity="Model", mappedBy="category")
     */
    private $models;
}


/**
 * @ORM\Entity()
 */
class Model
{   
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;
    /**
     * @ManyToOne(targetEntity="Category", inversedBy="models")
     * @JoinColumn(name="category_id", referencedColumnName="id")
     **/        
    private $category;

    /**
     * @ORM\OneToMany(targetEntity="Type", mappedBy="model")
     */
    private $types;
}


/**
 * @ORM\Entity()
 */
class Type
{   
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\Column(name="type", type="string", length=255)
     */
    private $name;
    /**
     * @ManyToOne(targetEntity="Model", inversedBy="types")
     * @JoinColumn(name="model_id", referencedColumnName="id")
     **/        
    private $model;
}

将代码添加到其中的每个文件后运行命令: php app/console doctrine:generate:entities 它将生成setter和getter以及构造函数