We learned a lot in this chapter about implementing a web application that consists of more than a few entities and their relations.
Specifically, we covered:
How to create a data model that describes entities and relations accurately
How to create a delivery layer that is security conscious and treats incoming data with care
How to use jQuery UI's dialog widget and extend the functionality of the autocomplete widget
We also encountered some limitations, especially in our entity/relation framework. It is, for example:
Quite a lot of work to initialize the database as each entity and relation needs its own initialization code
Unwieldy to specify things like sort order when retrieving entities
Difficult to check input values or display formats in a uniform way
Difficult to differentiate between different types of relations, like one-to-many or many-to-many
This hardly poses a problem for our moderately complex wiki application, but more complex applications can only be built with a more flexible framework which is the topic of the next chapter.