rfc*_*484 3 php orm entities naming-conventions doctrine-orm
我认为在 MySQL 中命名表的标准做法是使用复数名称。
引用这些表的类也应该是复数?
例如,假设您有一个名为 Users 的表,用于身份验证。
该表将在实体类中使用学说 ORM 或多或少像这样描述:
namespace Company\BlogBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Users")
*/
class Users
{
/**
* @ORM\Id
* @ORM\Column(type="integer", name="user_id")
* @ORM\GeneratedValue(strategy="AUTO")
*
* @var integer $userId
*/
protected $userId;
/**
* @ORM\Column(type="string", length="255", name="first_name")
*
* @var string $userName
*/
protected $userName;
...
}
Run Code Online (Sandbox Code Playgroud)
这样对吗?
还是应该用单数(“用户”)来命名“用户”类?
代表一个数据库行(一个实体)的类应该有单数名称。Doctrine 2 默认行为是以相同的方式命名数据库表。如果您愿意,您可以在每个 @Table 注释中重新配置它,但我建议您坚持使用 Doctrine 命名约定 - 数据库表的单数名称也是可以接受的。