RT rights internals for immortals only :)

Hello. Jesse.
All day try to understand ACL, Groups, Rights, Principals with no hope
on success.

Some questions:
I. Table ACL:
1) ACL.PrincipalType could be == ‘Group’ and in this case
ACL.PrincipalId → Groups.id, is this rught?
2) In other cases ACL.PrincipalId → Principals.id?
3) Each row in this table it is ‘ have right on
object #. This object have type ’. Is previose
right and how to figure out what is ?

II. Table Principals:
1) First of all, it’s bad naming ACL.PrincipalType and
Principals.PrincipalType
2) PrincipalType always =~ /Group|User/ ?
3) If select * from ACL A, Principals P where A.PrincipalType !=‘Group’
and A.PrincipalId = P.id and P.PrincipalType = ‘Group’; not empty then
what such records mean?

III. Table Groups:
1) Where Groups <-> Groups links stored?
2) Where Groups <-> Users links stored?
3) How to define what is mean?

Best Regards. Ruslan.