Compared to the single-class app discussed in Part 2 (and Part 3), we have to deal with a number of new technical issues:
In the model code we now have to take care of reference properties that require
maintenance of referential integrity
choosing and implementing one of the two possible deletion policies discussed in 2 for managing
the corresponding object destruction dependency in the
destroy method of the
property's range class,
conversion between (internal) object references and (external) ID references in the serialization and de-serialization procedures.
In the user interface ("view") code we now have to take care of
showing information about associated objects in the list objects use case;
allowing to select an associated object from a list of all existing instances of the target class in the create object and update object use cases.
The last issue, allowing to select an associated object from a list of all existing
instances of some class, can be solved with the help of an HTML