<spanclass="line"><span> FROM Posts JOIN Users ON Users.id, Posts.user;</span></span></code></pre></div><p>Can you see the logic? We need to identify the column that we are going to use for matching; and then ‘join on’ that match.</p><h3id="nosql"tabindex="-1">NoSQL <aclass="header-anchor"href="#nosql"aria-label="Permalink to “NoSQL”"></a></h3><p>MongoDB, others …</p><p>key-value store</p><p>document store</p><p>column-oriented database</p><p>graph database</p><h1id="the-server"tabindex="-1">The Server <aclass="header-anchor"href="#the-server"aria-label="Permalink to “The Server”"></a></h1><hr><p>CMS Content Management System ~ A place to put digital stuff.</p><p>There are different computer languages, and thus different platforms built using these varied languages.</p><p>What does the server do?</p><p>Often times, the server serves an API (Application Programming Interface)</p><p>The basis of a CMS is the ability to create, maintain and modify digital assets; though this says very little about how they are displayed.</p><p>And it is on this point that many CMS’s vary.</p><p>For example, whereas WordPress provides a variety of themes Django provides next to nothing for initial user-facing displays; Node/ExpressJS, even less.</p><p>Though technically Node is more of a framework, as is Express; with which Client’s interact.</p><p>For the sake of education, let’s review some of the most popular CMS’s.</p><h3id="php"tabindex="-1">PHP <aclass="header-anchor"href="#php"aria-label="Permalink to “PHP”"></a></h3><h4id="wordpress"tabindex="-1">Wordpress <aclass="header-anchor"href="#wordpress"aria-label="Permalink to “Wordpress”"></a></h4><p>WordPress is built using the PHP language, and is one of the most popular Content Management Systems on the web.</p><p>There is a massive variety of free, and paid, themes available; and even more plugins one can use to extend its functionality.</p><p>With regard to our server / API-layer, there are two primary categories utilized by Wordpress, posts and pages.</p><p>So in our database there are essentially four tables, or content types, beyond the User table:</p><p>Posts, Pages, Tags and Categories.</p><p>Mind you this is a highly simplified instance of a Wordpress site.</p><p>All the basics need to begin building a basic website for blogging; which is what makes WordPress so popular: its simplicity.</p><h4id="drupal"tabindex="-1">Drupal <aclass="header-anchor"href="#drupal"aria-label="Permalink to “Drupal”"></a></h4><p>Getting a bit more complicated, yet still built in PHP, we have Drupal.</p><p>Considered an Enterprise-level CMS, Drupal provides a level of customization that Wordpress does not.</p><p>Remember how Wordpress provided only two initial content-types: Post and Page?</p><p>Drupal expands upon these options enabling users to easily manage a blog, forum, and polls, if they choose.</p><p>These modules use generic "nodes" as a basis for pieces of content which are divided into "Content types".</p><p>In turn, these new content-types can have fields such as images, videos, polls, or other custom data types attached to each one.</p><p>In this fashion a website with many different types of content can be created, making Drupal a common choice for media companies and governments that require complex displays</p><p>It should be noted that while Wordpress refers to its add-ons as <em>plug-ins</em>, Drupal refers to these components as <em>modules</em>.</p><p>If you, the developer, choose to enable the blog, forum, book and poll modules in Drupal, these additional, pre-baked, content-types are made immediately available to you.</p><p>As well, Drupal is lauded for its robust security!</p><p>Though the price paid it, is its barrier to entry, Drupal is a beast; and requires an advanced awareness to develop and maintain.</p><h3id="python"tabindex="-1">Python <aclass="header-anchor"href="#python"aria-label="Permalink to “Python”"></a></h3><p>Let’s start with why not Django - it’s a r