我正在CakePHP3框架中开发一个应用程序,很多时候(也许从哲学角度讲),我有关于ORM约定的命名问题,这给我留下了一些疑问。
假设下面的表格:
“用户”可以有多个“优惠券”,但一个优惠券只属于一个用户。从用户的角度来看,这是一种hasMany关系,从优惠券的角度来看,这是一种belongsTo关系。在CakePHP3中,关系用复数表名来处理。所以在用户中,我们有一个$this->hasMany("Coupons")关系,但是使用$this->belongsTo("Users")?是正确的吗?(我指的是“User”I())。如果我指的是一个用户的优惠券,不是$ this-> belongsTo (" User ")吗?
当然,我可以更改关系的名称并指定className关系,但是用他的命名约定来实现这一点是正确的吗?
发布于 2019-09-17 03:13:38
一张桌子是复数的,因为它有很多记录。因此,表名是优惠券和用户。当将它们关联时,就是您要关联的表:优惠券表与User表相关联,而不是与用户记录关联的优惠券记录。
关联类型定义了实体之间的关系。这里的关联属于"belongsTo“类型,这意味着优惠券记录(CakePHP实体)”属于“用户记录,但它们不是”关联“的。
用户表中的一条记录是用户,所以当使用优惠券->用户关联时,您会得到一个单一的属性名,但是该记录仍然来自一个大的用户列表。
希望这有助于使命名方案对您来说更加直观。:-)
https://stackoverflow.com/questions/57958461
复制相似问题