As part of your intelligent content management strategy, you need to think about how and where you store your content.
There are three different ways to store content in an intelligent content management system:
- Traditional Relational Database
- XML files
- NoSQL Database
Managing Intelligent Content in a Traditional Relational Database
It is possible to store structured content in a relational database, but it comes with potential challenges. Relational databases store content in tables with rows and columns. Once you have the structure of your content types defined, you can create tables that match those content types, creating columns for each element in the content type. For free-form fields – like the main body of a blog or a press release, you can use the BLOB field type.
There are several challenges to using a relational database for structured content:
- It is possible to store structured content in a relational database, but it comes with potential challenges. Relational databases store content in tables with rows and columns. Once you have the structure of your content types defined, you can create tables that match those content types, creating columns for each element in the content type. For free-form fields – like the main body of a blog or a press release, you can use the BLOB field type.
- There are several challenges to using a relational database for structured content:
- Using BLOBs make displaying content for different channels harder. It also impacts the quality of your search queries.
- Tables can get very large and unwieldy if you have many elements in your content type. This can affect the performance of your database.
- When you need to make changes to your content type, you must update the table. Updates may apply to current element fields or add new element fields. These changes may require a transformation of content if existing fields are changed. In both cases, you will have to rebuild your database index and potentially drop or recreate any related stored procedures.
Storing Content in XML Files
You can store your content in XML files instead of a database. This approach is an older method of leveraging XML for structured content. This approach isn't applied so much to managing content in an intelligent content management system as it is a way to store content for a web application that you manage in the CMS.
An intelligent content management system can replicate XML files to a publishing target or remote location. Embedded Help and labeling are two examples where content replicated to XML files works well. When content is stored in files using XML, the application is updated to load the files like a supporting resource.
When delivering content via an XML file-based method, you have to pay particular attention to timing and caching, as well as setting up the proper connections and enabling the delivery of files across the firewall.
Leveraging the Schema-Free Nature of a NoSQL Database
The best approach to managing content in an intelligent content management system is a NoSQL database. A NoSQL database is schema-free, so content can have any structure you define, and you can change that structure over time without development or database changes. A NoSQL repository supports millions of topics and documents. Automatic clustering and sharding allow repository clustering without DB administration or development costs.
You store content in a NoSQL database as documents or JSON objects. Content has rich metadata, and you can easily search and retrieve it using that metadata. All the content in the repository is indexed and cached in memory, enabling information to be quickly processed and delivered without any performance impact, database IO, or SQL injection risk.
NoSQL is less expensive than a relational database and easier to administrate, making it a good choice for cloud-based deployments.
Storing Content Efficiently and Effectively
While there are several options for storing structured content, it’s important to carefully consider the advantages and disadvantages of each approach before you select the best option. The one you choose also depends on the CMS you select as not all content management systems support all three approaches.
Up next in our series: delivering content to multiple channels and devices.
Subscribe to the Ingeniux blog for the latest in web experience management.