-- -- Table structure for table `tblACLs` -- CREATE TABLE `tblACLs` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `target` INTEGER NOT NULL default '0', `targetType` INTEGER NOT NULL default '0', `userID` INTEGER NOT NULL default '-1', `groupID` INTEGER NOT NULL default '-1', `mode` INTEGER NOT NULL default '0' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblCategory` -- CREATE TABLE `tblCategory` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` text NOT NULL ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblAttributeDefinitions` -- CREATE TABLE `tblAttributeDefinitions` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(100) default NULL, `objtype` INTEGER NOT NULL default '0', `type` INTEGER NOT NULL default '0', `multiple` INTEGER NOT NULL default '0', `minvalues` INTEGER NOT NULL default '0', `maxvalues` INTEGER NOT NULL default '0', `valueset` TEXT default NULL, UNIQUE(`name`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblUsers` -- CREATE TABLE `tblUsers` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `login` varchar(50) default NULL, `pwd` varchar(50) default NULL, `fullName` varchar(100) default NULL, `email` varchar(70) default NULL, `language` varchar(32) NOT NULL, `theme` varchar(32) NOT NULL, `comment` text NOT NULL, `role` INTEGER NOT NULL default '0', `hidden` INTEGER NOT NULL default '0', `pwdExpiration` TEXT NOT NULL default '0000-00-00 00:00:00', `loginfailures` INTEGER NOT NULL default '0', `disabled` INTEGER NOT NULL default '0', `quota` INTEGER, UNIQUE (`login`) ); -- -------------------------------------------------------- -- -- Table structure for table `tblUserPasswordRequest` -- CREATE TABLE `tblUserPasswordRequest` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `hash` varchar(50) default NULL, `date` TEXT NOT NULL default '0000-00-00 00:00:00' ); -- -------------------------------------------------------- -- -- Table structure for table `tblUserPasswordHistory` -- CREATE TABLE `tblUserPasswordHistory` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `pwd` varchar(50) default NULL, `date` TEXT NOT NULL default '0000-00-00 00:00:00' ); -- -------------------------------------------------------- -- -- Table structure for table `tblUserImages` -- CREATE TABLE `tblUserImages` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `image` blob NOT NULL, `mimeType` varchar(10) NOT NULL default '' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblFolders` -- CREATE TABLE `tblFolders` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(70) default NULL, `parent` INTEGER default NULL, `folderList` text NOT NULL, `comment` text, `date` INTEGER default NULL, `owner` INTEGER default NULL REFERENCES `tblUsers` (`id`), `inheritAccess` INTEGER NOT NULL default '1', `defaultAccess` INTEGER NOT NULL default '0', `sequence` double NOT NULL default '0' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblFolderAttributes` -- CREATE TABLE `tblFolderAttributes` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `folder` INTEGER default NULL REFERENCES `tblFolders` (`id`) ON DELETE CASCADE, `attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`), `value` text default NULL, UNIQUE (folder, attrdef) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocuments` -- CREATE TABLE `tblDocuments` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(150) default NULL, `comment` text, `date` INTEGER default NULL, `expires` INTEGER default NULL, `owner` INTEGER default NULL REFERENCES `tblUsers` (`id`), `folder` INTEGER default NULL REFERENCES `tblFolders` (`id`), `folderList` text NOT NULL, `inheritAccess` INTEGER NOT NULL default '1', `defaultAccess` INTEGER NOT NULL default '0', `locked` INTEGER NOT NULL default '-1', `keywords` text NOT NULL, `sequence` double NOT NULL default '0' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentAttributes` -- CREATE TABLE `tblDocumentAttributes` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`), `value` text default NULL, UNIQUE (document, attrdef) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApprovers` -- CREATE TABLE `tblDocumentApprovers` ( `approveID` INTEGER PRIMARY KEY AUTOINCREMENT, `documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `version` INTEGER unsigned NOT NULL default '0', `type` INTEGER NOT NULL default '0', `required` INTEGER NOT NULL default '0', UNIQUE (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApproveLog` -- CREATE TABLE `tblDocumentApproveLog` ( `approveLogID` INTEGER PRIMARY KEY AUTOINCREMENT, `approveID` INTEGER NOT NULL default '0' REFERENCES `tblDocumentApprovers` (`approveID`) ON DELETE CASCADE, `status` INTEGER NOT NULL default '0', `comment` TEXT NOT NULL, `date` TEXT NOT NULL default '0000-00-00 00:00:00', `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContent` -- CREATE TABLE `tblDocumentContent` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `document` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`), `version` INTEGER unsigned NOT NULL, `comment` text, `date` INTEGER default NULL, `createdBy` INTEGER default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', `fileSize` INTEGER, `checksum` char(32), UNIQUE (`document`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContentAttributes` -- CREATE TABLE `tblDocumentContentAttributes` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `content` INTEGER default NULL REFERENCES `tblDocumentContent` (`id`) ON DELETE CASCADE, `attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`), `value` text default NULL, UNIQUE (content, attrdef) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLinks` -- CREATE TABLE `tblDocumentLinks` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `document` INTEGER NOT NULL default 0 REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `target` INTEGER NOT NULL default 0 REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`), `public` INTEGER NOT NULL default 0 ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentFiles` -- CREATE TABLE `tblDocumentFiles` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `document` INTEGER NOT NULL default 0 REFERENCES `tblDocuments` (`id`), `userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`), `comment` text, `name` varchar(150) default NULL, `date` INTEGER default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLocks` -- CREATE TABLE `tblDocumentLocks` ( `document` INTEGER REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewLog` -- CREATE TABLE `tblDocumentReviewLog` ( `reviewLogID` INTEGER PRIMARY KEY AUTOINCREMENT, `reviewID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentReviewers` (`reviewID`) ON DELETE CASCADE, `status` INTEGER NOT NULL default 0, `comment` TEXT NOT NULL, `date` TEXT NOT NULL default '0000-00-00 00:00:00', `userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewers` -- CREATE TABLE `tblDocumentReviewers` ( `reviewID` INTEGER PRIMARY KEY AUTOINCREMENT, `documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `version` INTEGER unsigned NOT NULL default '0', `type` INTEGER NOT NULL default '0', `required` INTEGER NOT NULL default '0', UNIQUE (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatus` -- CREATE TABLE `tblDocumentStatus` ( `statusID` INTEGER PRIMARY KEY AUTOINCREMENT, `documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `version` INTEGER unsigned NOT NULL default '0', UNIQUE (`documentID`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatusLog` -- CREATE TABLE `tblDocumentStatusLog` ( `statusLogID` INTEGER PRIMARY KEY AUTOINCREMENT, `statusID` INTEGER NOT NULL default '0' REFERENCES `tblDocumentStatus` (`statusID`) ON DELETE CASCADE, `status` INTEGER NOT NULL default '0', `comment` text NOT NULL, `date` TEXT NOT NULL default '0000-00-00 00:00:00', `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblGroups` -- CREATE TABLE `tblGroups` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(50) default NULL, `comment` text NOT NULL ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblGroupMembers` -- CREATE TABLE `tblGroupMembers` ( `groupID` INTEGER NOT NULL default '0' REFERENCES `tblGroups` (`id`) ON DELETE CASCADE, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `manager` INTEGER NOT NULL default '0', UNIQUE (`groupID`,`userID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywordCategories` -- CREATE TABLE `tblKeywordCategories` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(255) NOT NULL default '', `owner` INTEGER NOT NULL default '0' ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywords` -- CREATE TABLE `tblKeywords` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `category` INTEGER NOT NULL default '0' REFERENCES `tblKeywordCategories` (`id`) ON DELETE CASCADE, `keywords` text NOT NULL ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentCategory` -- CREATE TABLE `tblDocumentCategory` ( `categoryID` INTEGER NOT NULL default '0' REFERENCES `tblCategory` (`id`) ON DELETE CASCADE, `documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblNotify` -- CREATE TABLE `tblNotify` ( `target` INTEGER NOT NULL default '0', `targetType` INTEGER NOT NULL default '0', `userID` INTEGER NOT NULL default '-1', `groupID` INTEGER NOT NULL default '-1', UNIQUE (`target`,`targetType`,`userID`,`groupID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblSessions` -- CREATE TABLE `tblSessions` ( `id` varchar(50) PRIMARY KEY, `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `lastAccess` INTEGER NOT NULL default '0', `theme` varchar(30) NOT NULL default '', `language` varchar(30) NOT NULL default '', `clipboard` text default '' ) ; -- -------------------------------------------------------- -- -- Table structure for mandatory reviewers -- CREATE TABLE `tblMandatoryReviewers` ( `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `reviewerUserID` INTEGER NOT NULL default '0', `reviewerGroupID` INTEGER NOT NULL default '0', UNIQUE (`userID`,`reviewerUserID`,`reviewerGroupID`) ) ; -- -------------------------------------------------------- -- -- Table structure for mandatory approvers -- CREATE TABLE `tblMandatoryApprovers` ( `userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `approverUserID` INTEGER NOT NULL default '0', `approverGroupID` INTEGER NOT NULL default '0', UNIQUE (`userID`,`approverUserID`,`approverGroupID`) ) ; -- -------------------------------------------------------- -- -- Table structure for events (calendar) -- CREATE TABLE `tblEvents` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` varchar(150) default NULL, `comment` text, `start` INTEGER default NULL, `stop` INTEGER default NULL, `date` INTEGER default NULL, `userID` INTEGER NOT NULL default '0' ) ; -- -------------------------------------------------------- -- -- Table structure for workflow states -- CREATE TABLE tblWorkflowStates ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` text NOT NULL, `visibility` smallint(5) DEFAULT 0, `maxtime` INTEGER DEFAULT 0, `precondfunc` text DEFAULT NULL, `documentstatus` smallint(5) DEFAULT NULL ) ; -- -------------------------------------------------------- -- -- Table structure for workflow actions -- CREATE TABLE tblWorkflowActions ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` text NOT NULL ) ; -- -------------------------------------------------------- -- -- Table structure for workflows -- CREATE TABLE tblWorkflows ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` text NOT NULL, `initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for workflow transitions -- CREATE TABLE tblWorkflowTransitions ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE, `state` INTEGER default NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE, `action` INTEGER default NULL REFERENCES `tblWorkflowActions` (`id`) ON DELETE CASCADE, `nextstate` INTEGER default NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE, `maxtime` INTEGER DEFAULT 0 ) ; -- -------------------------------------------------------- -- -- Table structure for workflow transition users -- CREATE TABLE tblWorkflowTransitionUsers ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE, `userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ; -- -------------------------------------------------------- -- -- Table structure for workflow transition groups -- CREATE TABLE tblWorkflowTransitionGroups ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE, `groupid` INTEGER default NULL REFERENCES `tblGroups` (`id`) ON DELETE CASCADE, `minusers` INTEGER default NULL ) ; -- -------------------------------------------------------- -- -- Table structure for workflow log -- CREATE TABLE tblWorkflowLog ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `version` smallint default NULL, `workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE, `userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE, `date` datetime NOT NULL default '0000-00-00 00:00:00', `comment` text ) ; -- -------------------------------------------------------- -- -- Table structure for workflow document relation -- CREATE TABLE tblWorkflowDocumentContent ( `parentworkflow` INTEGER DEFAULT 0, `workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE, `document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, `version` smallint DEFAULT NULL, `state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE, `date` datetime NOT NULL default '0000-00-00 00:00:00' ) ; -- -------------------------------------------------------- -- -- Table structure for mandatory workflows -- CREATE TABLE tblWorkflowMandatoryWorkflow ( `userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE, `workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE, UNIQUE(userid, workflow) ) ; -- -------------------------------------------------------- -- -- Table structure for version -- CREATE TABLE `tblVersion` ( `date` TEXT NOT NULL default '0000-00-00 00:00:00', `major` smallint, `minor` smallint, `subminor` smallint ) ; -- -------------------------------------------------------- -- -- Initial content for database -- INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0, '', 0, 0, 0); INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '', 0, 0, 0); INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0); INSERT INTO tblVersion VALUES (DATETIME(), 4, 0, 0); INSERT INTO tblCategory VALUES (0, '');