Database Structure

Below is an overview of the structure and brief description of the database structure that supports the Ventana Systems website and it’s Content Management System (CMS). The specifications were derived from the intital proposal and feedback based on the intial specs. I’ll describe the basic structure using images of the tables and relationships and briefly describe the purpose and useful features of each set of tables.

Models and Examples

Specification: Models can have multiple Examples related to them. In addition, Examples can be related to multiple Models models_examplesModels and Examples are related in a many-to-many rel;ationship, allowing multiple Models and Examples to be related. The models_examples table holds the two related values and provides the linkage between the two tables. A form in the CMS allows users to easily select a Model and add as many related Examples to it as needed. The same Example can also be added as a related Example to more than one Model in the same fashion.

Models and Related Files

Specification: Models and Examples may have related files, which can be easily uploaded to the server by Ventana employees and made avaiolable for download by users on the related Model and Example page. Each Model and Example may have multiple related files and a given file may be related to multiple Models and Examples. I extended the specification to include the General Pages as well, as shown below. related files As the figure above shows, each page category (Models, Examples and General Pages) are linked in a many-to-many relationship with the related_files table, allowing each page category to have as nmany related files as needed and any given file to serve as a related file to any page type. A simple form is provided in the CMS to upload files to the server. Once files are uploaded another simple form allows the user to select a page and choose a file to be included on the page for download. To select multiple files the process is repeated as many times as needed. This can be done with Models, Examples and Genreal Pages. Also, files can be added to this page, or any page created using this editor by simply uploading it.

Examples, Categories and Publish Status

Specification: Examples must be selectable to enable front page “Featured” status. In addition, each Example can be set to a category (Economy, Environment…) in order to properly list and categorize them for searching and placement on the Research and Example detail pages. examplesAs the figure above show, the examples table contains a category selection field, a featured status selector field and a submitted by field that identifies the employee submitting the example. In addition, since examples, and all other text based content may be in progress, waiting for peer review or some other state of unreadiness for website publication, a publish field holds the publishing status (Draft, For Review, Publish…) to identify which are ready for website publication. Similarly, with the exception of the category field, model types, general pages, software pages, fragments and most other content tables contain a submitted by, and publish status field.