Хорошей идеей будет разбить вещи на группы как можно больше, пока вы не перейдете к индивидуально различимым элементам, которые в вашем случае были бы системами. Как вы уже поняли, наличие наименьшего элемента в базе данных Project - это проблема, когда у вас более одной Системы.
Я бы поместил подгруппу для каждого проекта в основной группе проекта, иначе:
- ou=Project
+ ou=proj1
+ ou=proj2
+ ou=proj3
Внутри каждого из них вы можете иметь объект для «члена» или «Системы», в зависимости от того, что является более различимым атрибутом. В качестве примера я буду считать, что «участник» - лучший выбор. Следуя этой идее, внутри каждой подгруппы у вас будут такие объекты:
- ou=Project
- ou=proj1
- dn: cn=sys1,ou=proj1,ou=Project,ou=ua,dc=org
cn: sys1
objectClass: top
objectClass: posixGroup
member: 001ag
System: ABEL
Budget: 1000000:0.3
- dn: cn=sys2,ou=proj1,ou=Project,ou=ua,dc=org
cn: sys2
objectClass: top
objectClass: posixGroup
member: 002ag
System: PCx
Budget: 300000:0.3
+ proj2
+ proj3
Теперь каждая система - это отдельная сущность, но проект по-прежнему группируется как единое целое.