When Defining New Object Classes

Add new object classes when the existing object classes do not support
all of the information you need to store in a directory entry.

There are two approaches to creating new object classes:

Create many new object classes, one for each object class
structure to which you want to add an attribute.

Create a single object class that supports all of the attributes
that you create for your directory. You create this kind of an object class
by defining it to be an AUXILIARY object class.

Suppose
your site wants to create the attributes ExampleDepartmentNumber and ExampleEmergencyPhoneNumber. You can create several object classes
that allow some subset of these attributes. You can create an object class
called ExamplePerson and have it allow the ExampleDepartmentNumber and ExampleEmergencyPhoneNumber attributes.
The parent of ExamplePerson would be inetOrgPerson.
You can then create an object class called ExampleOrganization and
have it also allow the ExampleDepartmentNumber and ExampleEmergencyPhoneNumber attributes. The parent of ExampleOrganization would
be the organization object class.

Your new object classes would appear in LDAP v3 schema format as follows:

Alternatively, you can create a single object class that allows all
of these attributes. Then you can use the object class with any entry on which
you want to use the attributes. The single object class would appear as follows:

The new ExampleEntry object class is marked AUXILIARY, meaning that it can be used with any entry regardless of its structural
object class.

Consider the following when deciding how to implement new object classes.

Multiple STRUCTURAL object classes result
in more schema elements to create and maintain.

Generally, the
number of elements remains small and needs little maintenance. However, if
you plan to add more than two or three object classes to your schema, you
might find it easier to use a single object class.