命名约定:在 PHP 中描述实体的类的单数与复数

发布于 2024-11-14 01:23:17 字数 689 浏览 2 评论 0原文

我认为 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;
    ...
}

这是正确的吗?

或者类“Users”应该以单数形式命名(“User”)?

I think that the standard practice to name tables in MySQL is to use plural names.

The classes refering to those tables should also be plural?

For example, imagine that you have a table called Users, that is used for authentication purposes.

This table would be described in an entity class more or less like this using the doctrine 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;
    ...
}

Is this correct?

Or should the class "Users" be named in singular ("User")?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

国产ˉ祖宗 2024-11-21 01:23:17

表示一个数据库行(一个实体)的类应该具有单一名称。原则 2 默认行为是以相同的方式命名数据库表。如果您愿意,您可以在每个 @Table 注释中重新配置它,但我建议您坚持 Doctrine 命名约定 - 数据库表的单数名称也是可以接受的。

Class representing one database row (an entity) should have singular name. Doctrine 2 default behaviour is to name database tables the same way. You can reconfigure it in every @Table annotation if you'd like to, but I suggest you to stick with Doctrine naming conventions - singular name for database table is also acceptable.

烂人 2024-11-21 01:23:17

如果您的类应该表示现实世界项目的实例,那么从语义上讲,我会说单数形式可能是合适的。数据库表用于存储多个项目,因此复数形式是合适的。不管怎样,只要你保持一致,这并不重要。

If your class is supposed to represent an instance of a real-world item then semantically I'd say that singular form may be the one to go with. The database table is used to store multiple items so plural form is appropriate there. Either way it doesn't really matter just as long as you're consistent.

比忠 2024-11-21 01:23:17

在数据库中,它们是复数,因为它是一个包含很多它们的表;有很多用户的表。作为一个物体,它是一个单一的东西;单个用户。我通常保持我的课程单一。

In the database, they're plural because it's a table of a lot of them; a table of lots of users. As an object, it's a singular thing; a single user. I generally keep my classes singular.

灰色世界里的红玫瑰 2024-11-21 01:23:17

我还赞成使用具有单数名称的表名,因为一行代表表的一项,就像对象代表类的一个实例一样。唯一的例外是表的每一行包含例如序列化(或等效)项目,即位置的“邻居”。

I also subscribe to using table names with singular name because a row represents one item of a table in the same way as an object represents one instance of class. The only exceptions can be when each row of a table contains for example serialized (or equivalent) items, i.e. "neighbors" of a location.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文