Hi!
I'm currently designing the JCR model. It is relatively
straightforward, except for two things:
1) storing of attachments (I haven't figured out yet whether it's
better to store them in a separate workspace, because then you can
leverage faster local filesystems instead of putting really big
binaries into the database)
2) and more importantly, author names.
Now, we have in 2.8 a way to uniquely identify an author by an id
number, allowing for author name changes. This is quite fine, but
I'm now unsure what should be stored into the backend.
Storing the id alone brings in the following problems:
* Imports/exports break, since the repo model would only export the
ID, and there would be no binding of that to real identity
* Since the id=>identity mapping is not done in the JCR backend,
every getAuthor() (w/out cache) would cause multiple DB accesses.
* numeric ids are not necessarily available from the userdb backend
(e.g. if you use LDAP or something similar), so they would be
internal only - which means that if you export or access the content
via other means, you would not be able to figure out the user.
One possibility would of course to be and ditch any custom User/
GroupDatabases and make them use the JCR backend, too. But that will
tie them together for better or worse.
Another possibility would be to store both the id *and* the WikiName.
Opinions?
/Janne