In the previous chapter, we looked at setting up vector data stores from spatial databases and then publishing tables as layers. This type of data is known as simple features, and is the type of data that will most commonly be served through GeoServer. However, it is possible that you will need to deliver a more complex dataset that is relational in nature and built from multiple data sources.
With a little bit of effort, it is possible to set up GeoServer so that you can deliver complex feature datasets to your users. In this chapter, we will discuss how this can be achieved using GeoServer's app-schema extension. By the end of this chapter, you will have a better understanding of: