Cakephp 蛋糕php模型关系困难,特别是有许多困难
我提前道歉。。。我是个十足的傻瓜。因此,我很难正确地关联我的模型。更具体地说,我在“hasMany-Through”关系中遇到的麻烦最多。我一直把头撞在墙上,翻阅着食谱,但没有发现它像我希望的那样清晰 我目前正在编写一个有很多复杂关系的web应用程序。我将从我的表的精简版本开始Cakephp 蛋糕php模型关系困难,特别是有许多困难,cakephp,relationship,foreign-key-relationship,has-many-through,jointable,Cakephp,Relationship,Foreign Key Relationship,Has Many Through,Jointable,我提前道歉。。。我是个十足的傻瓜。因此,我很难正确地关联我的模型。更具体地说,我在“hasMany-Through”关系中遇到的麻烦最多。我一直把头撞在墙上,翻阅着食谱,但没有发现它像我希望的那样清晰 我目前正在编写一个有很多复杂关系的web应用程序。我将从我的表的精简版本开始 用户: 身份证,姓名 小组: 身份证,姓名,部门号 部门: 身份证、姓名、区号 地区: 身份证,姓名 角色 身份证,姓名 请注意,角色是我所谓的访问级别(用户、管理员、超级用户) 用户组 -组id、
- 用户:
- 身份证,姓名
- 小组:
- 身份证,姓名,部门号
- 部门:
- 身份证、姓名、区号
- 地区:
- 身份证,姓名
- 角色
- 身份证,姓名
- 请注意,角色是我所谓的访问级别(用户、管理员、超级用户)
- 用户组 -组id、用户id
- 部门和用户:
- 部门id、用户id、角色id
user.php
public $hasMany = array('DepartmentPosition');
department.php
public $hasMany = array('DepartmentPosition');
department_position.php
public $belongsTo = array('User','Department');
我还添加了一个新的数据表:
- 部门职位:
- id、部门id、用户id、角色id
谢谢。任何帮助都是很大的帮助 如果一个用户可以在不同的组中扮演不同的角色,那么在这两者之间需要一些东西,HABTM或HASMANYTHROW表格 在Cake版本2.1之前,HABTM不可能与额外的柱有关系(在下面的角色id中)。如果您将unique参数设置为keepExisting,则不再是这种情况,但我更喜欢hasManyThrough关系而不是HABTM。我想这是一个品味的问题
User hasMany GroupRole
GroupRole belongsTo User, GroupRole belongsTo Groups, GroupRole belongsTo Role (GroupRole is hasManyThrough table)
Group hasMany GroupRole, Group belongsTo Department
Department hasMany Group, Department belongsTo District
District hasMany Department
如果一个用户可以在不同的组中扮演不同的角色,那么在这两个组之间需要一些东西,HABTM或hasManyThrough表 在Cake版本2.1之前,HABTM不可能与额外的柱有关系(在下面的角色id中)。如果您将unique参数设置为keepExisting,则不再是这种情况,但我更喜欢hasManyThrough关系而不是HABTM。我想这是一个品味的问题
User hasMany GroupRole
GroupRole belongsTo User, GroupRole belongsTo Groups, GroupRole belongsTo Role (GroupRole is hasManyThrough table)
Group hasMany GroupRole, Group belongsTo Department
Department hasMany Group, Department belongsTo District
District hasMany Department
非常感谢。不过我还是很难接受这个。看,我写的申请部分是为了通知。此应用程序上下文中的组仅为组织级别。一个组没有任何功能(也就是角色,对吧?)。比如说,一个叫做付费(ooposed to Vol)的团体可能由一名消防员、一名中尉和一名看门人组成;因此,我看不到b/w组和函数之间的关系。如果你不介意的话,你能详细阐述一下你对这些模型的概念吗?还有,你用什么来生成图形?你说得对,角色=功能,角色绝对是一个更好的名字,我认为我的模型不完整,我会编辑它。这个图是用MySQL工作台制作的,很酷的工具:-)谢谢。这将非常有帮助。顺便说一句,现在看看MYSQL工作台!非常感谢!!!我希望这对其他人也有帮助!多亏了你的第一个答案,我终于弄明白了。我最终做了一些非常相似的事情。你完全正确,我们解决方案的唯一区别是,在我的解决方案中,“组角色”是“部门角色(hasManyThrough)”,这只是因为我的应用程序的权限是在部门级别确定的,而不是在组级别确定的。非常感谢您非常详细、易懂的回答。谢谢你给我看工作台。。。太棒了,非常感谢。不过我还是很难接受这个。看,我写的申请部分是为了通知。此应用程序上下文中的组仅为组织级别。一个组没有任何功能(也就是角色,对吧?)。比如说,一个叫做付费(ooposed to Vol)的团体可能由一名消防员、一名中尉和一名看门人组成;因此,我看不到b/w组和函数之间的关系。如果你不介意的话,你能详细阐述一下你对这些模型的概念吗?还有,你用什么来生成图形?你说得对,角色=功能,角色绝对是一个更好的名字,我认为我的模型不完整,我会编辑它。这张图是用迈斯制作的