Cakephp3的ORM命名约定
ORM Naming Convention of Cakephp3
我正在 CakePHP3 框架中开发一个应用程序,很多时候(也许从哲学上讲)我有关于 ORM 约定的命名问题,这让我有些怀疑。
假设以下 tables:
- 优惠券
- 用户
一个'user'可以有多个'coupons',但一张优惠券专属于一个用户。从用户的角度来看,它是一个 hasMany 关系,而从优惠券的角度来看,它是一个 belongsTo 关系。
嗯,在 CakePHP3 中,关系是用复数 table 名称处理的。所以在用户中,我们有一个 $this->hasMany("Coupons") 关系,但是使用 $this->belongsTo("Users")? (我指的是 belongsTo() 中的 "Users"。如果我引用用户的优惠券,那不是 $ this-> belongsTo ("User")?
当然我可以更改关系的名称并指定 className 关系,但是按照他的命名约定这样做是正确的吗?
A table 是复数,因为它有很多记录。所以 table 名称是优惠券和用户。当关联它们时,您关联的是 table:优惠券 table 与用户 table 关联,而不是与用户记录关联的优惠券记录。
关联类型定义了实体之间的关系。这里的关联是 "belongsTo" 种类,这意味着优惠券记录(CakePHP 实体)"belongs to" 用户记录,但它们不是 "associated".
来自用户 table 的一条记录是一个用户,因此当使用优惠券 -> 用户关联时,您会得到一个单一的 属性 名称,但该记录仍然来自一个大列表用户数。
希望这有助于使命名方案对您来说更直观一些。 :-)
我正在 CakePHP3 框架中开发一个应用程序,很多时候(也许从哲学上讲)我有关于 ORM 约定的命名问题,这让我有些怀疑。
假设以下 tables:
- 优惠券
- 用户
一个'user'可以有多个'coupons',但一张优惠券专属于一个用户。从用户的角度来看,它是一个 hasMany 关系,而从优惠券的角度来看,它是一个 belongsTo 关系。 嗯,在 CakePHP3 中,关系是用复数 table 名称处理的。所以在用户中,我们有一个 $this->hasMany("Coupons") 关系,但是使用 $this->belongsTo("Users")? (我指的是 belongsTo() 中的 "Users"。如果我引用用户的优惠券,那不是 $ this-> belongsTo ("User")?
当然我可以更改关系的名称并指定 className 关系,但是按照他的命名约定这样做是正确的吗?
A table 是复数,因为它有很多记录。所以 table 名称是优惠券和用户。当关联它们时,您关联的是 table:优惠券 table 与用户 table 关联,而不是与用户记录关联的优惠券记录。
关联类型定义了实体之间的关系。这里的关联是 "belongsTo" 种类,这意味着优惠券记录(CakePHP 实体)"belongs to" 用户记录,但它们不是 "associated".
来自用户 table 的一条记录是一个用户,因此当使用优惠券 -> 用户关联时,您会得到一个单一的 属性 名称,但该记录仍然来自一个大列表用户数。
希望这有助于使命名方案对您来说更直观一些。 :-)