moved from topic MetadataSucks -- GrantBow - 03 Feb 2003
I've held off mentioning this for a few days becuase I thought it was something well known, but it seems from what I see in other topics that this is not so.
Perl has a abstracted database interface. I presents the same API whatever the underlying databases are.
What could they be?
- SQL on a local machine
- SQL on a remote machine
- Delimited plain text files (such as CSV)
- Berkeley DBM files
The database could be an "open" one such as MySQL or a "closed" one such as DB2 (now available on Linux), Oracle or Sybase. Or even the old XBase

The database may be local or remote. It can even be an ODBC interface.
The data may be simple tables or "multilevel" using the perl MLDBM module.
The interface is excellently documented in the O'Reilly book "Programming the Perl DBI" - ISBN 1-56592-699-4
So long as the TWiki API sits on top of the Perl DBI, the underlying database is left to the discression of the site maintainer.
As I've commented elsewhere, I beleive that access control is metadata. At the moment, the editor does not display the basic metadata, the last author/date-stamp and the form or attachement metatdata. It does, however, display the access control information and allow the user to edit it
as text in an unconstrained and unverified manner that allows for inconsistencies.
I beleive that addressing the issue of access control and moving it "out of band" is of great importance in making Twiki a professional "commercial grade" tool.
--
AntonAylward - 31 Jan 2003
Assuming that we do something to make TWiki use
PerlDBI,
- do we replace StoreDotPm with DBI access
- do we write a DBI class to our current datastore
- do we just make a plugin that allows access to the current store
- can we leverage the work in FormQueryPlugin ?
also
if we do this
- where is out of band?
- what constitues a table?
- is a table a collection of the data from any topic with a particulr WebForm
- or is there one table per web, with some columns not defined
- or what? - whats the schema?
- how do we do versioning (this is the biggest sellnig point that i have come across)
- yes (personally & professionally) i need all data (including meta data) to be versioned.
--
SvenDowideit - 10 Mar 2004
Note that things have moved on in the ROW since Anton wrote his original note.
CGI::Wiki is now pretty robust, Kwiki is built on it, and the whole shebang uses an
SQL DB underneath. Anton has, I believe, contributed to this work. See
http://search.cpan.org/~kake/CGI-Wiki/
CGI::Wiki uses a
MySQL interface. See
http://search.cpan.org/~kake/CGI-Wiki/lib/CGI/Wiki/Store/Database.pm
It's an interesting thought experiment to consider how
CGI::Wiki::Store::Database.pm could plugin in to replace TWiki::Store
--
CrawfordCurrie - 10 Mar 2004