From 4f0689ca560e0b7fe8d989e2787520f009ebba02 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 10 Jun 2024 00:35:34 -0700 Subject: Add initial sqlite tables file --- data/tables.sqlite.sql | 203 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 data/tables.sqlite.sql (limited to 'data') diff --git a/data/tables.sqlite.sql b/data/tables.sqlite.sql new file mode 100644 index 0000000..6a22ad1 --- /dev/null +++ b/data/tables.sqlite.sql @@ -0,0 +1,203 @@ +-- Semantic Scuttle - Tables creation SQL script +-- ! Dont forget to change table names according to $tableprefix defined in config.php ! + +-- +-- Table structure for table `sc_bookmarks` +-- + +CREATE TABLE IF NOT EXISTS `sc_bookmarks` ( + `bId` integer NOT NULL, + `uId` int(11) NOT NULL default '0', + `bIp` varchar(40) default NULL, + `bStatus` tinyint(1) NOT NULL default '0', + `bDatetime` datetime NOT NULL default '0000-00-00 00:00:00', + `bModified` datetime NOT NULL default '0000-00-00 00:00:00', + `bTitle` varchar(255) NOT NULL default '', + `bAddress` varchar(1500) NOT NULL, + `bDescription` text default NULL, + `bPrivateNote` text default NULL, + `bHash` varchar(32) NOT NULL default '', + `bVotes` int(11) NOT NULL default '0', + `bVoting` int(11) NOT NULL default '0', + `bShort` varchar(16) default NULL, + PRIMARY KEY (`bId`), + CONSTRAINT `sc_bookmarks_usd` UNIQUE (`uId`,`bStatus`,`bDatetime`), + CONSTRAINT `sc_bookmarks_hui` UNIQUE (`bHash`,`uId`,`bId`), + CONSTRAINT `sc_bookmarks_du` UNIQUE (`bDatetime`,`uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_tags` +-- + +CREATE TABLE IF NOT EXISTS `sc_tags` ( + `tId` integer NOT NULL, + `tag` varchar(100) NOT NULL default '', + `uId` int(11) NOT NULL default '0', + `tDescription` text default NULL, + PRIMARY KEY (`tId`), + CONSTRAINT `sc_tags_tag_uId` UNIQUE (`tag`, `uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_bookmarks2tags` +-- + +CREATE TABLE IF NOT EXISTS `sc_bookmarks2tags` ( + `id` integer NOT NULL, + `bId` int(11) NOT NULL default '0', + `tag` varchar(100) NOT NULL default '', + PRIMARY KEY (`id`), + UNIQUE (`tag`,`bId`), + CONSTRAINT `sc_bookmarks2tags_bId` UNIQUE (`bId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_users` +-- + +CREATE TABLE IF NOT EXISTS `sc_users` ( + `uId` integer NOT NULL, + `username` varchar(25) NOT NULL default '', + `password` varchar(40) NOT NULL default '', + `uDatetime` datetime NOT NULL default '0000-00-00 00:00:00', + `uModified` datetime NOT NULL default '0000-00-00 00:00:00', + `name` varchar(50) default NULL, + `email` varchar(50) NOT NULL default '', + `homepage` varchar(255) default NULL, + `uContent` text, + `privateKey` varchar(33) default NULL, + PRIMARY KEY (`uId`), + CONSTRAINT `privateKey` UNIQUE (`privateKey`) +); + +-- -------------------------------------------------------- + +CREATE TABLE IF NOT EXISTS `sc_users_sslclientcerts` ( + `id` INTEGER NOT NULL , + `uId` INT NOT NULL , + `sslSerial` VARCHAR( 32 ) NOT NULL , + `sslClientIssuerDn` VARCHAR( 1024 ) NOT NULL , + `sslName` VARCHAR( 64 ) NOT NULL , + `sslEmail` VARCHAR( 64 ) NOT NULL , + PRIMARY KEY ( `id` ) +); + +-- +-- Table structure for table `sc_watched` +-- + +CREATE TABLE IF NOT EXISTS `sc_watched` ( + `wId` integer NOT NULL, + `uId` int(11) NOT NULL default '0', + `watched` int(11) NOT NULL default '0', + PRIMARY KEY (`wId`), + CONSTRAINT `sc_watched_uId` UNIQUE (`uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_tags2tags` +-- + +CREATE TABLE IF NOT EXISTS `sc_tags2tags` ( + `ttId` integer NOT NULL, + `tag1` varchar(100) NOT NULL default '', + `tag2` varchar(100) NOT NULL default '', + `relationType` varchar(32) NOT NULL default '', + `uId` int(11) NOT NULL default '0', + PRIMARY KEY (`ttId`), + CONSTRAINT `sc_tags2tags_tag1_tag2_uId` UNIQUE (`tag1`,`tag2`,`relationType`,`uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_tagsstats` +-- + +CREATE TABLE IF NOT EXISTS `sc_tagsstats` ( + `tstId` integer NOT NULL, + `tag1` varchar(100) NOT NULL default '', + `relationType` varchar(32) NOT NULL default '', + `uId` int(11) NOT NULL default '0', + `nb` int(11) NOT NULL default '0', + `depth` int(11) NOT NULL default '0', + `nbupdate` int(11) NOT NULL default '0', + PRIMARY KEY (`tstId`), + CONSTRAINT `sc_tagsstats_tag1_type_uId` UNIQUE (`tag1`,`relationType`,`uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_tagscache` +-- + +CREATE TABLE IF NOT EXISTS `sc_tagscache` ( + `tcId` integer NOT NULL, + `tag1` varchar(100) NOT NULL default '', + `tag2` varchar(100) NOT NULL default '', + `relationType` varchar(32) NOT NULL default '', + `uId` int(11) NOT NULL default '0', + PRIMARY KEY (`tcId`), + CONSTRAINT `sc_tagscache_tag1_tag2_type_uId` UNIQUE (`tag1`,`tag2`,`relationType`,`uId`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_commondescription` +-- + +CREATE TABLE IF NOT EXISTS `sc_commondescription` ( + `cdId` integer NOT NULL, + `uId` int(11) NOT NULL default '0', + `tag` varchar(100) NOT NULL default '', + `bHash` varchar(32) NOT NULL default '', + `cdTitle` varchar(255) NOT NULL default '', + `cdDescription` text default NULL, + `cdDatetime` datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (`cdId`), + CONSTRAINT `sc_commondescription_tag_datetime` UNIQUE (`tag`,`CDDATETIME`), + CONSTRAINT `sc_commondescription_bookmark_datetime` UNIQUE (`bHash`,`cdDatetime`) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sc_searchhistory` +-- + +CREATE TABLE IF NOT EXISTS `sc_searchhistory` ( + `shId` integer NOT NULL, + `shTerms` varchar(255) NOT NULL default '', + `shRange` varchar(32) NOT NULL default '', + `shDatetime` datetime NOT NULL default '0000-00-00 00:00:00', + `shNbResults` int(6) NOT NULL default '0', + `uId` int(11) NOT NULL default '0', + PRIMARY KEY (`shId`) +); + + +CREATE TABLE IF NOT EXISTS `sc_votes` ( + `bId` INT NOT NULL , + `uId` INT NOT NULL , + `vote` INT( 2 ) NOT NULL , + CONSTRAINT `bid_2` UNIQUE (`bId`,`uId`), + CONSTRAINT `bid` UNIQUE (`bId`), + CONSTRAINT `uid` UNIQUE (`uId`) +); + + +CREATE TABLE IF NOT EXISTS `sc_version` ( + `schema_version` int(11) NOT NULL +); +INSERT INTO `sc_version` (`schema_version`) VALUES ('6'); -- cgit v1.2.3-54-g00ecf From b5ac1fa2a33ae046fa785d9938dcd0d5274b7ce1 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 10 Jun 2024 21:09:15 -0700 Subject: Make sure to check users for being false --- .../default/bookmarkcommondescriptionedit.tpl.php | 9 ++++++-- data/templates/default/bookmarks.tpl.php | 2 +- data/templates/default/sidebar.block.menu.php | 2 +- .../default/tagcommondescriptionedit.tpl.php | 9 ++++++-- .../minimal/bookmarkcommondescriptionedit.tpl.php | 9 ++++++-- data/templates/minimal/bookmarks.tpl.php | 2 +- data/templates/minimal/sidebar.block.menu.php | 2 +- .../minimal/tagcommondescriptionedit.tpl.php | 9 ++++++-- .../bookmarkcommondescriptionedit.tpl.php | 9 ++++++-- data/templates/sscuttlizr/bookmarks.tpl.php | 2 +- data/templates/sscuttlizr/sidebar.block.menu.php | 2 +- .../sscuttlizr/tagcommondescriptionedit.tpl.php | 9 ++++++-- src/SemanticScuttle/Model/User.php | 27 +++++++++++++++++----- src/SemanticScuttle/Service/AuthUser.php | 12 ++++++---- src/SemanticScuttle/Service/User.php | 7 +++++- www/profile.php | 5 ++-- 16 files changed, 85 insertions(+), 32 deletions(-) (limited to 'data') diff --git a/data/templates/default/bookmarkcommondescriptionedit.tpl.php b/data/templates/default/bookmarkcommondescriptionedit.tpl.php index 807c58b..306086e 100644 --- a/data/templates/default/bookmarkcommondescriptionedit.tpl.php +++ b/data/templates/default/bookmarkcommondescriptionedit.tpl.php @@ -30,8 +30,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/data/templates/default/bookmarks.tpl.php b/data/templates/default/bookmarks.tpl.php index 2a3d169..0f88a60 100644 --- a/data/templates/default/bookmarks.tpl.php +++ b/data/templates/default/bookmarks.tpl.php @@ -86,7 +86,7 @@ if ($userservice->isLoggedOn()) { /* personal tag description */ if($currenttag!= '' && $user!='') { $userObject = $userservice->getUserByUsername($user); - if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?> + if($userObject && $tagservice->getDescription($currenttag, $userObject['uId'])) { ?>

getDescription($currenttag, $userObject['uId']); diff --git a/data/templates/default/sidebar.block.menu.php b/data/templates/default/sidebar.block.menu.php index 94a9fa2..dfb2c25 100644 --- a/data/templates/default/sidebar.block.menu.php +++ b/data/templates/default/sidebar.block.menu.php @@ -63,7 +63,7 @@ if (sizeof($menuTags) > 0 || ($userid != 0 && $userid === $logged_on_userid)) { getUser($userid); ?> -0): ?> +0): ?>

diff --git a/data/templates/default/tagcommondescriptionedit.tpl.php b/data/templates/default/tagcommondescriptionedit.tpl.php index 207cfd2..f52d5b0 100644 --- a/data/templates/default/tagcommondescriptionedit.tpl.php +++ b/data/templates/default/tagcommondescriptionedit.tpl.php @@ -20,8 +20,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/data/templates/minimal/bookmarkcommondescriptionedit.tpl.php b/data/templates/minimal/bookmarkcommondescriptionedit.tpl.php index b1114d7..4629d72 100644 --- a/data/templates/minimal/bookmarkcommondescriptionedit.tpl.php +++ b/data/templates/minimal/bookmarkcommondescriptionedit.tpl.php @@ -33,8 +33,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/data/templates/minimal/bookmarks.tpl.php b/data/templates/minimal/bookmarks.tpl.php index 1510d44..86749bc 100644 --- a/data/templates/minimal/bookmarks.tpl.php +++ b/data/templates/minimal/bookmarks.tpl.php @@ -87,7 +87,7 @@ if ($userservice->isLoggedOn()) { /* personal tag description */ if($currenttag!= '' && $user!='') { $userObject = $userservice->getUserByUsername($user); - if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?> + if($userObject && $tagservice->getDescription($currenttag, $userObject['uId'])) { ?>

getDescription($currenttag, $userObject['uId']); diff --git a/data/templates/minimal/sidebar.block.menu.php b/data/templates/minimal/sidebar.block.menu.php index 94a9fa2..dfb2c25 100644 --- a/data/templates/minimal/sidebar.block.menu.php +++ b/data/templates/minimal/sidebar.block.menu.php @@ -63,7 +63,7 @@ if (sizeof($menuTags) > 0 || ($userid != 0 && $userid === $logged_on_userid)) { getUser($userid); ?> -0): ?> +0): ?>

diff --git a/data/templates/minimal/tagcommondescriptionedit.tpl.php b/data/templates/minimal/tagcommondescriptionedit.tpl.php index e46c184..bde2ff8 100644 --- a/data/templates/minimal/tagcommondescriptionedit.tpl.php +++ b/data/templates/minimal/tagcommondescriptionedit.tpl.php @@ -24,8 +24,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/data/templates/sscuttlizr/bookmarkcommondescriptionedit.tpl.php b/data/templates/sscuttlizr/bookmarkcommondescriptionedit.tpl.php index b1114d7..4629d72 100644 --- a/data/templates/sscuttlizr/bookmarkcommondescriptionedit.tpl.php +++ b/data/templates/sscuttlizr/bookmarkcommondescriptionedit.tpl.php @@ -33,8 +33,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/data/templates/sscuttlizr/bookmarks.tpl.php b/data/templates/sscuttlizr/bookmarks.tpl.php index 2df30db..c87a337 100644 --- a/data/templates/sscuttlizr/bookmarks.tpl.php +++ b/data/templates/sscuttlizr/bookmarks.tpl.php @@ -87,7 +87,7 @@ if ($userservice->isLoggedOn()) { /* personal tag description */ if($currenttag!= '' && $user!='') { $userObject = $userservice->getUserByUsername($user); - if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?> + if($userObject && $tagservice->getDescription($currenttag, $userObject['uId'])) { ?>

getDescription($currenttag, $userObject['uId']); diff --git a/data/templates/sscuttlizr/sidebar.block.menu.php b/data/templates/sscuttlizr/sidebar.block.menu.php index 94a9fa2..dfb2c25 100644 --- a/data/templates/sscuttlizr/sidebar.block.menu.php +++ b/data/templates/sscuttlizr/sidebar.block.menu.php @@ -63,7 +63,7 @@ if (sizeof($menuTags) > 0 || ($userid != 0 && $userid === $logged_on_userid)) { getUser($userid); ?> -0): ?> +0): ?>

diff --git a/data/templates/sscuttlizr/tagcommondescriptionedit.tpl.php b/data/templates/sscuttlizr/tagcommondescriptionedit.tpl.php index e46c184..bde2ff8 100644 --- a/data/templates/sscuttlizr/tagcommondescriptionedit.tpl.php +++ b/data/templates/sscuttlizr/tagcommondescriptionedit.tpl.php @@ -24,8 +24,13 @@ window.onload = function() { if(strlen($description['cdDatetime'])>0) { echo T_('Last modification:').' '.$description['cdDatetime'].', '; $lastUser = $userservice->getUser($description['uId']); - echo '' - . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + if ($lastUser) { + echo '' + . SemanticScuttle_Model_UserArray::getName($lastUser) . ''; + } + else { + echo 'Unknown user'; + } } ?> diff --git a/src/SemanticScuttle/Model/User.php b/src/SemanticScuttle/Model/User.php index 3fbbaa0..96dddbf 100644 --- a/src/SemanticScuttle/Model/User.php +++ b/src/SemanticScuttle/Model/User.php @@ -83,7 +83,9 @@ class SemanticScuttle_Model_User if (!isset($this->privateKey)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->privateKey = $user['privateKey']; + if ($user) { + $this->privateKey = $user['privateKey']; + } } //2023-12-20 add line to avoid 'Deprecated' warning if (is_null($this->privateKey)) return null; @@ -106,7 +108,12 @@ class SemanticScuttle_Model_User if (!isset($this->name)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->name = $user['name']; + if ($user) { + $this->name = $user['name']; + } + else { + $this->name = 'unknown'; + } } return $this->name; } @@ -122,7 +129,9 @@ class SemanticScuttle_Model_User if (!isset($this->email)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->email = $user['email']; + if ($user) { + $this->email = $user['email']; + } } return $this->email; } @@ -138,7 +147,9 @@ class SemanticScuttle_Model_User if(!isset($this->homepage)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->homepage = $user['homepage']; + if ($user) { + $this->homepage = $user['homepage']; + } } return $this->homepage; } @@ -154,7 +165,9 @@ class SemanticScuttle_Model_User if(!isset($this->content)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->content = $user['uContent']; + if ($user) { + $this->content = $user['uContent']; + } } return $this->content; } @@ -171,7 +184,9 @@ class SemanticScuttle_Model_User if(!isset($this->content)) { $us = SemanticScuttle_Service_Factory::get('User'); $user = $us->getUser($this->id); - $this->datetime = $user['uDatetime']; + if ($user) { + $this->datetime = $user['uDatetime']; + } } return $this->datetime; } diff --git a/src/SemanticScuttle/Service/AuthUser.php b/src/SemanticScuttle/Service/AuthUser.php index 9447ee4..f0bc908 100644 --- a/src/SemanticScuttle/Service/AuthUser.php +++ b/src/SemanticScuttle/Service/AuthUser.php @@ -168,10 +168,12 @@ class SemanticScuttle_Service_AuthUser extends SemanticScuttle_Service_User //user must have changed password in external auth. //we need to update the local database. $user = $this->getUserByUsername($username); - $this->_updateuser( - $user['uId'], $this->getFieldName('password'), - $this->sanitisePassword($password) - ); + if ($user) { + $this->_updateuser( + $user['uId'], $this->getFieldName('password'), + $this->sanitisePassword($password) + ); + } return parent::login($username, $password, $remember); } @@ -229,4 +231,4 @@ class SemanticScuttle_Service_AuthUser extends SemanticScuttle_Service_User } } -?> \ No newline at end of file +?> diff --git a/src/SemanticScuttle/Service/User.php b/src/SemanticScuttle/Service/User.php index 917c7c9..675c4fb 100644 --- a/src/SemanticScuttle/Service/User.php +++ b/src/SemanticScuttle/Service/User.php @@ -395,7 +395,12 @@ class SemanticScuttle_Service_User extends SemanticScuttle_DbService { if (is_numeric($user)) { $user = $this->getUser($user); - $user = $user['username']; + if ($user) { + $user = $user['username']; + } + else { + $user = 'unknown'; + } } else if (is_array($user)) { $user = $user['username']; } diff --git a/www/profile.php b/www/profile.php index 6a4222e..88e58e5 100644 --- a/www/profile.php +++ b/www/profile.php @@ -130,10 +130,11 @@ if (POST_SUBMITTED!='' && $currentUser->getId() == $userid) { } } $userinfo = $userservice->getObjectUserByUsername($user); - $tplVars['privateKey'] = $userinfo->getPrivateKey(true); - if ($userservice->isPrivateKeyValid($userinfo->getPrivateKey())) { + if ($userinfo && $userservice->isPrivateKeyValid($userinfo->getPrivateKey())) { + $tplVars['privateKey'] = $userinfo->getPrivateKey(true); $tplVars['privateKeyIsEnabled'] = 'checked="checked"'; } else { + $tplVars['privateKey'] = null; $tplVars['privateKeyIsEnabled'] = ''; } } -- cgit v1.2.3-54-g00ecf From c6101ba37422dcfcf16131d9dc41692e0725aa81 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 10 Jun 2024 23:35:51 -0700 Subject: Fix initial database import for sqlite My understanding of the ‘KEY’ keyword in the ‘tables.sql’ was incomplete. I didn't realize that it made indexes. --- data/tables.sqlite.sql | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'data') diff --git a/data/tables.sqlite.sql b/data/tables.sqlite.sql index 6a22ad1..b7265cc 100644 --- a/data/tables.sqlite.sql +++ b/data/tables.sqlite.sql @@ -20,12 +20,13 @@ CREATE TABLE IF NOT EXISTS `sc_bookmarks` ( `bVotes` int(11) NOT NULL default '0', `bVoting` int(11) NOT NULL default '0', `bShort` varchar(16) default NULL, - PRIMARY KEY (`bId`), - CONSTRAINT `sc_bookmarks_usd` UNIQUE (`uId`,`bStatus`,`bDatetime`), - CONSTRAINT `sc_bookmarks_hui` UNIQUE (`bHash`,`uId`,`bId`), - CONSTRAINT `sc_bookmarks_du` UNIQUE (`bDatetime`,`uId`) + PRIMARY KEY (`bId`) ); +CREATE INDEX IF NOT EXISTS `sc_bookmarks_usd` ON `sc_bookmarks` (`uId`, `bStatus`, `bDatetime`); +CREATE INDEX IF NOT EXISTS `sc_bookmarks_hui` ON `sc_bookmarks` (`bHash`, `uId`, `bId`); +CREATE INDEX IF NOT EXISTS `sc_bookmarks_du` ON `sc_bookmarks` (`bDatetime`, `uId`); + -- -------------------------------------------------------- -- @@ -52,10 +53,11 @@ CREATE TABLE IF NOT EXISTS `sc_bookmarks2tags` ( `bId` int(11) NOT NULL default '0', `tag` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), - UNIQUE (`tag`,`bId`), - CONSTRAINT `sc_bookmarks2tags_bId` UNIQUE (`bId`) + CONSTRAINT `sc_bookmarks2tags_tag_bId` UNIQUE (`tag`,`bId`) ); +CREATE INDEX IF NOT EXISTS `sc_bookmarks2tags_bId` ON `sc_bookmarks2tags` (`bId`); + -- -------------------------------------------------------- -- @@ -97,10 +99,11 @@ CREATE TABLE IF NOT EXISTS `sc_watched` ( `wId` integer NOT NULL, `uId` int(11) NOT NULL default '0', `watched` int(11) NOT NULL default '0', - PRIMARY KEY (`wId`), - CONSTRAINT `sc_watched_uId` UNIQUE (`uId`) + PRIMARY KEY (`wId`) ); +CREATE INDEX IF NOT EXISTS `sc_watched_uId` ON `sc_watched` (`uId`); + -- -------------------------------------------------------- -- @@ -191,11 +194,12 @@ CREATE TABLE IF NOT EXISTS `sc_votes` ( `bId` INT NOT NULL , `uId` INT NOT NULL , `vote` INT( 2 ) NOT NULL , - CONSTRAINT `bid_2` UNIQUE (`bId`,`uId`), - CONSTRAINT `bid` UNIQUE (`bId`), - CONSTRAINT `uid` UNIQUE (`uId`) + CONSTRAINT `bid_2` UNIQUE (`bId`,`uId`) ); +CREATE INDEX IF NOT EXISTS `bId` ON `sc_votes` (`bId`); +CREATE INDEX IF NOT EXISTS `uId` ON `sc_votes` (`uId`); + CREATE TABLE IF NOT EXISTS `sc_version` ( `schema_version` int(11) NOT NULL -- cgit v1.2.3-54-g00ecf