我有一个数据库,其中有一个表Users,我需要存储关于它们之间关系的信息:有权管理其他用户的用户。此外,那些被管理的用户也可以是经理,因此任何用户都可以是经理,也可以由包括自己在内的任何其他用户管理(2个用户可以是彼此的经理)。
所以我想到的唯一想法就是创建一个包含以下字段的“联接”表:
manager_id (key field that links to a user_id)
managed_id (key field too that links to a user_id as well)
但是一个连接表在同一个表之间,会产生什么样的关系呢?
用户->是否属于“用户”??
这样可以吗?
(ndm应答后编辑)
使用ndm告诉我的方法,我遇到了一个错误。
所以,在UsersTable中。php我现在有:
$this->belongsToMany('Managers', [
'className' => 'Users',
'foreignKey' => 'manager_id',
'targetForeignKey' => 'user_id'
]);
在数据库“test.sql”表managers\u中,用户有2个字段:
manager_id
user_id
两个关键字段
但当我尝试从UsersController查询时。php:
$query = $this->Users->find()
->contain(['Managers'])
->all()
;
我得到错误:SQLSTATE[42S02]:找不到基表或视图:1146 table'test。users\u users不存在
有什么帮助吗?