Hi,
As tempus fugit towards release 1.0 I have a bit of a basic architecture
problem with the current DB schema.
Why does XWiki's DB schema depend on a number of proxy primary keys - eg.
ID: bigint? XWikiListClasses has a primary key of id, and name;
XWikiClasses has only a numeric id and name doesn't seem to matter. Is
this just me missing some basic idea?
Doesn't this hide the cardinalities, semantic connections and
non-transitive dependencies captured by primary keys in a fully-normalised
relational schema?
Currently this information would have to be inferred from the existing
schema, taking some time to do. And so I can't tell whether the schema is
normalised or not.
An example might be a Document. If memory serves me, Documents are
frequently uniquely identified by the minimal primary key of {title,
author, publication date}. If you ask "What are the chances of 2 different
documents having the same author name, title and publication timestamp?"
then this satisfices most conditions. An XWikiDoc however has a large set
of required fields and a single key.
Neither MySql nor any other RDBMS I know of uses single-field primary
keys. They are only required in the binary relational model.
I have always thought that good OODB design demanded *explicit*
de-normalisation if needed?
Cheers
Jim
--
Jim Stuttard