CompareDatabaseRecipes
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.
- 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).
- 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.
- 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.
- 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.
- 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.
MyPmWiki
Other recipes required: none
MyPmWiki allows SQL queries to be embedded directly in wiki pages.
- minimal setup.
- 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.
- 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
- 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.
- If this is what you're looking for, it's the right tool for the job.
- Actively maintained by Petko.
- 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.
- 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
- works only with MySQL databases.
- uses custom syntax rather than standard wiki tags.
- not under active development.
See Also
Contributors
Ben Stallings
Comments
See discussion at CompareDatabaseRecipes-Talk