Поскольку мне трудно понять ваш вопрос, я пытаюсь помочь с этими ссылками, которые очень хорошо объясняют ACL в CakePHP:
Учебное пособие для приложения, контролируемого ACL
Объяснение компонента ACL
API-запись для компонента ACL
Но просто для объяснения, для чего предназначены два ключа "foreign_key" и "parent_id":
foreign_key
Используется для связи ARO (объекта запроса доступа) с соответствующей записью в базе данных. Вы можете, например, связать пользователя с его корреспондентом ARO и воспользоваться ассоциациями Cakes между ними и хранить всю информацию в одном месте.
parent_id
Используется для построения древовидной структуры ACO (объектов контроля доступа). Если вы предоставите parent_id, структура может выглядеть следующим образом:
Your_Controller (has id 5)
Your_First_Method (has id 6 and parent_id 5)
Your_Second_Method (has id 7 and parent_id 5)
Как видите, вы получаете хорошую иерархическую структуру ваших ACO.
Надеюсь, это поможет вам лучше понять ACL CakePHP.