Despot:Schema: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
No edit summary  | 
				|||
| Line 17: | Line 17: | ||
   `user_id` mediumint(8) unsigned NOT NULL,  |    `user_id` mediumint(8) unsigned NOT NULL,  | ||
   `partition_id` mediumint(8) unsigned NOT NULL,  |    `partition_id` mediumint(8) unsigned NOT NULL,  | ||
   `class`   |    `class` enum('owner','peer','member') NOT NULL default 'member',  | ||
   UNIQUE KEY `user_id` (`user_id`,`partition_id`),  |    UNIQUE KEY `user_id` (`user_id`,`partition_id`),  | ||
   KEY `class` (`class`)  |    KEY `class` (`class`)  | ||
| Line 24: | Line 24: | ||
   `partition_id` mediumint(8) unsigned NOT NULL,  |    `partition_id` mediumint(8) unsigned NOT NULL,  | ||
   `field` varchar(255) NOT NULL,  |    `field` varchar(255) NOT NULL,  | ||
   `oldvalue`   |    `oldvalue` mediumtext,  | ||
   `newvalue`   |    `newvalue` mediumtext,  | ||
   `who` mediumint(8) unsigned NOT NULL,  |    `who` mediumint(8) unsigned NOT NULL,  | ||
   `ts`   |    `ts` datetime NOT NULL,  | ||
   KEY `ts` (`ts`)  |    KEY `ts` (`ts`),  | ||
  KEY `partition_id` (`partition_id`)  | |||
`partitions`  | `partitions`  | ||
   `id` mediumint(8) unsigned NOT NULL auto_increment,  |    `id` mediumint(8) unsigned NOT NULL auto_increment,  | ||
   `name` varchar(255) NOT NULL,  |    `name` varchar(255) NOT NULL,  | ||
   `state`   |    `state` enum('open','restricted','closed') NOT NULL default 'open',  | ||
   `description` text,  |    `description` text,  | ||
   `doclinks` mediumtext,  |    `doclinks` mediumtext,  | ||
| Line 40: | Line 41: | ||
   `private` tinyint(1) NOT NULL default '0',  |    `private` tinyint(1) NOT NULL default '0',  | ||
   PRIMARY KEY  (`id`),  |    PRIMARY KEY  (`id`),  | ||
  KEY `name` (`name`),  | |||
  KEY `parent_id` (`parent_id`)  | |||
`repositories`  | `repositories`  | ||
| Line 55: | Line 58: | ||
   `repository_id` mediumint(8) unsigned NOT NULL,  |    `repository_id` mediumint(8) unsigned NOT NULL,  | ||
   `field` varchar(255) NOT NULL,  |    `field` varchar(255) NOT NULL,  | ||
   `oldvalue`   |    `oldvalue` mediumtext,  | ||
   `newvalue`   |    `newvalue` mediumtext,  | ||
   `who` mediumint(8) unsigned NOT NULL,  |    `who` mediumint(8) unsigned NOT NULL,  | ||
   `ts`   |    `ts` datetime NOT NULL,  | ||
   KEY `ts` (`ts`)  |    KEY `ts` (`ts`),  | ||
  KEY `repository_id` (`repository_id`)  | |||
`restrictions`  | `restrictions`  | ||
| Line 78: | Line 82: | ||
`tags`  | `tags`  | ||
   `name` varchar(255) NOT NULL,  |    `name` varchar(255) NOT NULL,  | ||
   `partition_id` mediumint(8) unsigned NOT NULL   |    `partition_id` mediumint(8) unsigned NOT NULL,  | ||
   KEY `name` (`name`)  |    KEY `name` (`name`)  | ||
| Line 84: | Line 88: | ||
   `user_id` mediumint(8) unsigned NOT NULL,  |    `user_id` mediumint(8) unsigned NOT NULL,  | ||
   `field` varchar(255) NOT NULL,  |    `field` varchar(255) NOT NULL,  | ||
   `oldvalue`   |    `oldvalue` mediumtext,  | ||
   `newvalue`   |    `newvalue` mediumtext,  | ||
   `who` mediumint(8) unsigned NOT NULL,  |    `who` mediumint(8) unsigned NOT NULL,  | ||
   `ts`   |    `ts` datetime NOT NULL,  | ||
   KEY `ts` (`ts`)  |    KEY `ts` (`ts`),  | ||
  KEY `user_id` (`user_id`)  | |||
`vouchers`  | `vouchers`  | ||
Latest revision as of 06:37, 14 March 2007
Proposed Schema
`branches`
`id` mediumint(8) unsigned NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`)
`files`
`partition_id` mediumint(8) unsigned NOT NULL, `repository_id` mediumint(8) unsigned NOT NULL, `branch_id` mediumint(8) unsigned NOT NULL default '0', `pattern` varchar(255) NOT NULL, KEY `partition_id` (`partition_id`), KEY `repository_id` (`repository_id`), KEY `branch_id` (`branch_id`)
`members`
 `user_id` mediumint(8) unsigned NOT NULL,
 `partition_id` mediumint(8) unsigned NOT NULL,
 `class` enum('owner','peer','member') NOT NULL default 'member',
 UNIQUE KEY `user_id` (`user_id`,`partition_id`),
 KEY `class` (`class`)
`partition_changes`
`partition_id` mediumint(8) unsigned NOT NULL, `field` varchar(255) NOT NULL, `oldvalue` mediumtext, `newvalue` mediumtext, `who` mediumint(8) unsigned NOT NULL, `ts` datetime NOT NULL, KEY `ts` (`ts`), KEY `partition_id` (`partition_id`)
`partitions`
 `id` mediumint(8) unsigned NOT NULL auto_increment,
 `name` varchar(255) NOT NULL,
 `state` enum('open','restricted','closed') NOT NULL default 'open',
 `description` text,
 `doclinks` mediumtext,
 `newsgroups` mediumtext,
 `parent_id` mediumint(8) unsigned NOT NULL default '0',
 `private` tinyint(1) NOT NULL default '0',
 PRIMARY KEY  (`id`),
 KEY `name` (`name`),
 KEY `parent_id` (`parent_id`)
`repositories`
`id` mediumint(8) unsigned NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` tinyint(3) unsigned NOT NULL, `root` varchar(255) NOT NULL, `vouchers_req` tinyint(3) unsigned NOT NULL default '2', `sr_req` tinyint(3) unsigned NOT NULL default '1', `private` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`,`type`)
`repository_changes`
`repository_id` mediumint(8) unsigned NOT NULL, `field` varchar(255) NOT NULL, `oldvalue` mediumtext, `newvalue` mediumtext, `who` mediumint(8) unsigned NOT NULL, `ts` datetime NOT NULL, KEY `ts` (`ts`), KEY `repository_id` (`repository_id`)
`restrictions`
`user_id` mediumint(8) unsigned NOT NULL, `partition_id` mediumint(8) unsigned NOT NULL, UNIQUE KEY `user_id` (`user_id`,`partition_id`)
`sessions`
`id` varchar(255) NOT NULL default , `data` text, `expires` int(11) default NULL, PRIMARY KEY (`id`)
`syncneeded`
`repository_id` mediumint(8) unsigned NOT NULL, `needed` tinyint(1) NOT NULL default '0'
`tags`
`name` varchar(255) NOT NULL, `partition_id` mediumint(8) unsigned NOT NULL, KEY `name` (`name`)
`user_changes`
`user_id` mediumint(8) unsigned NOT NULL, `field` varchar(255) NOT NULL, `oldvalue` mediumtext, `newvalue` mediumtext, `who` mediumint(8) unsigned NOT NULL, `ts` datetime NOT NULL, KEY `ts` (`ts`), KEY `user_id` (`user_id`)
`vouchers`
`user_id` mediumint(8) unsigned NOT NULL, `partition_id` mediumint(8) unsigned NOT NULL, `voucher_id` mediumint(8) unsigned NOT NULL, `sr` tinyint(1) NOT NULL default '0', KEY `user_id` (`user_id`,`partition_id`,`voucher_id`)
Fields that need to be decided if they belong in LDAP or mysql
- despot (for if the user is a despotadmin or not) - neednewpassword (has the user reset his/her password from what was originally mailed?)
Other thoughts
- LDAP will have all the main user data in it (name, ssh keys, passwords, etc.) - LDAP groups will determine access to repositories in general