OGoDatabaseProject
==================

This bundle implements the document storage backend for 'database' based
projects. Such projects store document metadata in the database and the
actual file BLOB in the filesystem.

The functionality is based on the LSDocuments and LSProject Logic bundles.

Note that this bundle was previously one with OGoProjects and got moved out
when additional backend got available. Due to this the source is a bit messy.

Further the design of the SkyProjectFileManager needs a LOT of work, its a
huge class doing all kinds of things at the same time. This needs to get
refactored into several small units doing specific things.


Database Storage
================

Tables: document / document_version / document_editing

- folders are regular document's
- links are document's
- documents know their parents, not the reverse
- filenames are stored in the 'title' column
  - extensions are stored separate, in the 'filetype' column


Standard File Attribute Keys
============================

A few standard attributes are set in documents, some have multiple names. Not
all of them might be set in all documents.

Note: the 'title' is the filename in the database, the 'abstract' is the title
      or subject.

- check for hasPrefix:

This is from SkyProjectFileManager+FileAttributes.m:

attribute			document/database
- NSFileSubject / title		abstract
- filename			formatted 'title'
- fileType			fileType
- fileSize			fileSize
- status [released]		status
- globalID			documentId | documentVersionId
- versionCount			versionCount
- lastmodifiedDate		lastmodifiedDate
- creationDate			creationDate
- NSFileName / SkyFileName	formatted 'title' + extension
- NSFilePath / SkyFilePath	path + filename [+ version-id]
- SkyIsRootDirectory		- no parentDocumentId -
- SkyParentId			parentDocumentId
- SkyParentGID			GID of parentDocumentId
- NSFileMimeType		isFolder + isLink + fileType
- SkyLinkTarget			objectLink	(when !version && isLink)
- NSFileType
- SkyBlobPath
- SkyFirstOwnerId		GID of firstOwnerId
- NSFileOwnerAccountNumber / SkyOwnerId		
				lastOwnerId | currentOwnerId
- SkyVersionName		version
- SkyVersionNumber		NSNumber of version
- SkyIsVersion			
- SkyTitle			abstract
- SkyCreationDate		creationDate
- SkyStatus			status
- SkyVersionCount		versionCount
- NSFileModificationDate / SkyLastModifiedDate
				lastmodifiedDate | archiveDate (versions)
- projectNumber
- projectName
- projectId
