These object represent the objects that are related to each other. Could be people that have relationships to other people, folders that contain sub items, items or groups of items,
Collect the newly created objects so they can be accessed by unique identifier.Using the identifier and a hash collection allows for cheap quick access to these data objects. This should probably be controlled by its own object.
Load in a set of data that represents the relationships between objects.In database design relation tables contain the connections between different data in other tables. Usually they contain a column for a unique id and a column of ids for one set of data and a column of ids for the second set of data.
Apply the relationship data to the objectsThe objects are then connected with references to each other. No recursive data crawling, and a very fast object creation method; typically spinning though collections.
Post object relationship connection. Objects now have all of their connections. These connections can then be called upon for functional requirements. Trees and networks of all sorts can be described easily. Additional objects and relationships can be added easily due to these loopup hashes. Former objects and their relationships can be removed. Updating a single object becomes even simpler. With a simple Ruby on Rails CRUD application or a different application for allowing updates to databases, if the data that creates the objects is all grouped together, updating takes little logic to describe it. In conclusion. Depending on the project or application and data requirements there may be a need for a different abstraction of relational data/ object creation. The more complex projects I work on the more this seems to simplify the project and the data transfer.
Nate is currently a Senior Presentation Layer Architect at Razorfish Chicago. As an SPLA Nate: participates in technology leadership team and resource allocations, manage fulltime and contractor resources, represents technology for groups of brands across multiple clients, furthers development of standards within the office, architects project implementations and fosters community and mentoring.