CompareDatabaseRecipes

Summary: Comparison of Database Recipes for PmWiki
Version:
Prerequisites:
Status: draft
Maintainer:
Categories: Data, Forms, CMS, SystemTools

Questions answered by this recipe

How do I decide which recipe to use for integrating a database with PmWiki?

Recipes (in alphabetical order)

DataPlates

Other recipes required: DataQuery (below), Fox or ZAP

DataPlates automates the process of creating templates for displaying DataQuery data. It creates easy-to-use forms for creating and editing records in the database. It also provides a form-based front-end for configuring queries.

Pros:
  • Dramatically speeds up the process of configuring and templating queries for use with DataQuery.
  • Facilitates the creation and editing of data by generating forms that fit the database structure, so that users cannot enter invalid information.
  • A good choice for large projects with lots of queries (say, more than 5).
Cons:
  • Requires ZAP (which is not supported) or Fox for processing form data, rather than the more standard PmForms. Configuring these recipes properly may take additional development time.
  • May be overkill for small projects (say, 5 or fewer). Consider using UpdateForm for these projects instead.
  • not under active development.

DataQuery

Other recipes required: DatabaseStandard

DataQuery makes the results of a query available as page text variables within wiki pages whose names indicate the query and record being displayed. That is, a page called Products/21 would display record 21 in a query called Products. Data are displayed and can be created or updated using standard wiki markup.

Pros:
  • allows a massive amount of data to be made available within the wiki with minimal setup.
  • theoretically allows any database type supported by ADOdb. Only MySQL has been thoroughly tested.
  • users familiar with wiki syntax can interact with the database without having to learn additional markup.
  • queries can be defined very precisely to make only the desired data available, while all other data are kept off the Web.
  • works with existing wiki features such as password protection, page lists, and searching.
Cons:
  • when used without DataPlates, setting up the templates necessary to display the data can be tedious and unintuitive.
  • when used without a form processor to set the page text variables, editing and creating records is also unintuitive.
  • not under active development.

DQReport

Other recipes required: DataQuery

DQReport adds some export and navigation functions to DataQuery.

Pros:
  • facilitates the export of data in row or column format.
  • uses standard PmWiki syntax and works with existing wiki features such as password protection.
  • Supported by Dirk Blaas.
Cons:

MyPmWiki

Other recipes required: none

MyPmWiki allows SQL queries to be embedded directly in wiki pages.

Pros:
  • minimal setup.
Cons:
  • requires familiarity with SQL syntax.
  • allows unfettered access to the database from within the wiki.
  • unsupported.

SelectQuery

Other recipes required: DatabaseStandard

SelectQuery displays the results of a query in a wiki page. It can be used with UpdateForm to allow editing of data.

Pros:
  • theoretically allows any database type supported by ADOdb; MySQL has been thoroughly tested.
  • specific fields can be declared off-limits, for security.
  • data can be displayed in custom templates or in a table by default.
  • actively supported by Guy Moreau
Cons:
  • database content is not searchable by the wiki
  • requires some familiarity with SQL syntax
  • templates require custom syntax, rather than standard wiki template variables.

SQLite PageStore class

Other recipes required: none

SQLite causes a wiki to store its pages in a SQLite database instead of in text files.

Pros:
  • If this is what you're looking for, it's the right tool for the job.
  • Actively maintained by Petko.
Cons:
  • Does not work with existing database data or existing wiki pages.
  • Does not provide for structured data types.

UpdateForm

Other recipes required: none

UpdateForm allows you to design a form using wiki syntax that will add or update records in a database table. It does not display more than one record at a time; use SelectQuery for that.

Pros:
  • does not require any additional recipes.
  • a single wiki page can be used both to add new records and edit existing ones, saving development time.
  • provides a handy markup for creating <select> drop-down menus from a database query
Cons:
  • works only with MySQL databases.
  • uses custom syntax rather than standard wiki tags.
  • not under active development.

See Also

CompareFormsRecipes

Contributors

Ben Stallings

Comments

See discussion at CompareDatabaseRecipes-Talk