Centre For Design, eZ Publish Case Study - Content Model
Content Model
Having defined the way users would see the site and how administrators would work with
the content, we had to define the business rules that would control not only what the user
saw in each section, but also what the administrators would be able to add in each
section. In the user view we used a sitemap and in the Admin view we used a tree
structure, but neither of these approaches was effective in capturing the business rules of
what content could go where. It was important to capture the rules in a manner that had
enough detail for the developer to work with but was also easy enough for the client and
designer to understand.
Traditionally, sites with a database are displayed using a sitemap and a line to a database.
The details of the database are defined separately in a schema, which in itself has
different views: for example, table definition and relationship diagram. We needed to
combine the sitemap with the content types and show the relationship between them and
other parts of the site.
After several attempts at trying to combine the sitemap with database schema type
diagrams, we decided to adopt a different approach that started with the content rather
than where the content went. Adding to this, we borrowed from Peter Coad's approach to
object modeling in color (Java Modeling in Color with UML, Peter Coad, Eric Lefebvre,
Jeff De Luca, Prentice Hall). The end result is what we call a content model.
To create the content model, we start by representing each content type at the top of the
page, each with a different color. We then represent each of the main sections of the site
underneath. The next step is to draw a line between the content type and each section that
the content type can appear in. This establishes the rules of what can go where.
Once the main rules are defined, we look to capturing when content should be published
in two places simultaneously. In the following diagram, a news article stored in the
speeches section is also published on the home page. A publication stored in the LCA
section is also published in Publication under the LCA sub-section.
Original Content Model
Final Content Model
This approach proved to be quite powerful. It was easy for the client to understand the
relationship between the content and the site. At the same time, the developer was
provided with a high-level view of the relationships that would be implemented within
the CMS.
In the same way that an object model captures the objects within a business domain and
how they work together, the content model brought together the content, the site, and the
business rules in a single effective representation. Because the content model brings so
many elements together, it is the most important part of the specification to get right.
Get the content model right and everything else will fall into place.