On 05/02/2012 11:05 AM, Jiri Kuncar wrote:
> Hello,
> please check the attached database schema and let me know if you see any 
> missing relations/foreign keys.
> 
> Best regards,
> Jiri Kuncar
> 


Dear Jiri,
thanks for your work!

Regarding bibauthorid, I fear you started over a bit outdated version;
all tables but:
aidPERSONIDDATA
aidPERSONIDPAPERS
aidUSERINPUTLOG
aidPROBCACHE
aidRESULTS

should be removed.

Also,
aidCACHE
should stay there for legacy compatibility but will have to be removed soon.

Given that we are in topic, tabe wapCACHE should be added as well; that's for 
the module webauthorprofile which is not integrated yet but will arrive in a 
couple of weeks.


Here a snippet from tabcreate.sql with all the tables involved in their most 
recent form:

CREATE TABLE IF NOT EXISTS `aidPERSONIDDATA` (
  `personid` BIGINT( 16 ) UNSIGNED NOT NULL ,
  `tag` VARCHAR( 64 ) NOT NULL ,
  `data` VARCHAR( 256 ) NOT NULL ,
  `opt1` MEDIUMINT( 8 ) NULL DEFAULT NULL ,
  `opt2` MEDIUMINT( 8 ) NULL DEFAULT NULL ,
  `opt3` VARCHAR( 256 ) NULL DEFAULT NULL ,
  INDEX `personid-b` (`personid`) ,
  INDEX `tag-b` (`tag`) ,
  INDEX `data-b` (`data`) ,
  INDEX `opt1` (`opt1`)
) ENGINE=MYISAM;

CREATE TABLE IF NOT EXISTS `aidUSERINPUTLOG` (
  `id` bigint(15) NOT NULL AUTO_INCREMENT,
  `transactionid` bigint(15) NOT NULL,
  `timestamp` datetime NOT NULL,
  `userinfo` varchar(255) NOT NULL,
  `personid` bigint(15) NOT NULL,
  `action` varchar(50) NOT NULL,
  `tag` varchar(50) NOT NULL,
  `value` varchar(200) NOT NULL,
  `comment` text,
  PRIMARY KEY (`id`),
  INDEX `transactionid-b` (`transactionid`),
  INDEX `timestamp-b` (`timestamp`),
  INDEX `userinfo-b` (`userinfo`),
  INDEX `personid-b` (`personid`),
  INDEX `action-b` (`action`),
  INDEX `tag-b` (`tag`),
  INDEX `value-b` (`value`)
) ENGINE=MyISAM;

CREATE TABLE IF NOT EXISTS `aidCACHE` (
  `id` int(15) NOT NULL auto_increment,
  `object_name` varchar(120) NOT NULL,
  `object_key` varchar(120) NOT NULL,
  `object_value` text,
  `last_updated` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  INDEX `name-b` (`object_name`),
  INDEX `key-b` (`object_key`),
  INDEX `last_updated-b` (`last_updated`)
) ENGINE=MyISAM;

CREATE TABLE IF NOT EXISTS `aidPROBCACHE` (
  `cluster` VARCHAR( 256 ) NOT NULL ,
  `bibmap` MEDIUMBLOB NOT NULL ,
  `matrix` LONGBLOB NOT NULL ,
  PRIMARY KEY ( `cluster` )
) ENGINE = MYISAM ;

CREATE TABLE IF NOT EXISTS `aidPERSONIDPAPERS` (
  `personid` BIGINT( 16 ) UNSIGNED NOT NULL ,
  `bibref_table` ENUM(  '100',  '700' ) NOT NULL ,
  `bibref_value` MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
  `bibrec` MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
  `name` VARCHAR( 256 ) NOT NULL ,
  `flag` SMALLINT( 2 ) NOT NULL DEFAULT  '0' ,
  `lcul` SMALLINT( 2 ) NOT NULL DEFAULT  '0' ,
  `last_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT 
CURRENT_TIMESTAMP ,
  INDEX `personid-b` (`personid`) ,
  INDEX `reftable-b` (`bibref_table`) ,
  INDEX `refvalue-b` (`bibref_value`) ,
  INDEX `rec-b` (`bibrec`) ,
  INDEX `name-b` (`name`) ,
  INDEX `pn-b` (`personid`, `name`) ,
  INDEX `timestamp-b` (`last_updated`) ,
  INDEX `ptvrf-b` (`personid`, `bibref_table`, `bibref_value`, `bibrec`, `flag`)
) ENGINE=MYISAM;

CREATE TABLE IF NOT EXISTS `aidRESULTS` (
  `personid` VARCHAR( 256 ) NOT NULL ,
  `bibref_table` ENUM(  '100',  '700' ) NOT NULL ,
  `bibref_value` MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
  `bibrec` MEDIUMINT( 8 ) UNSIGNED NOT NULL ,
  INDEX `personid-b` (`personid`) ,
  INDEX `reftable-b` (`bibref_table`) ,
  INDEX `refvalue-b` (`bibref_value`) ,
  INDEX `rec-b` (`bibrec`)
) ENGINE=MYISAM;

CREATE TABLE IF NOT EXISTS `wapCACHE` (
  `object_name` varchar(120) NOT NULL,
  `object_key` vobject_keyobject_keyarchar(120) NOT NULL,
  `object_value` longtext,
  `object_status` varchar(120),
  `last_updated` datetime NOT NULL,
  PRIMARY KEY  (`object_name`,`object_key`),
  INDEX `name-b` (`object_name`),
  INDEX `key-b` (`object_key`),
  INDEX `last_updated-b` (`last_updated`)
) ENGINE=MyISAM;

Note that there are no primary keys in aidPERSONIDPAPERS and aidPERSONIDDATA. 
If needed all the row can be keyed for the latter, and 
personid,bibref_table,bibref_value,bibrec for the former.

hope this helps!

Sam
-- 
|--
| Samuele Carli
|--
| Contacts:
|
|       Home page   : www.csspace.net
|       E-mail      : carlisamuele _at_ csspace.net
|       Icq         : 60401601
|       MSN         : [email protected] (no e-mails here!)
|       Skype       : wohthan
|       jabber/gtalk: [email protected]
|--

Reply via email to