Updated schema to use "INTEGER PRIMARY KEY" for all applicable rows -- for clarity, I wasn't using it for tables that weren't using autoincrement functionality, but not using it keeps SQLite from just making that column name an alias for the internal rowid column, resulting in an extra unnecessary column. Can't update existing tables now, but may in 1.5. (Refs #779, Update tables created without "INTEGER PRIMARY KEY")
This commit is contained in:
parent
6cffa75cd0
commit
7db177d7f0
55
userdata.sql
55
userdata.sql
|
@ -29,24 +29,22 @@ CREATE TABLE IF NOT EXISTS userFieldMask (
|
||||||
|
|
||||||
-- User-defined item types -- itemTypeIDs must be >= 1000
|
-- User-defined item types -- itemTypeIDs must be >= 1000
|
||||||
CREATE TABLE IF NOT EXISTS userItemTypes (
|
CREATE TABLE IF NOT EXISTS userItemTypes (
|
||||||
itemTypeID INT,
|
itemTypeID INTEGER PRIMARY KEY,
|
||||||
typeName TEXT,
|
typeName TEXT,
|
||||||
templateItemTypeID INT,
|
templateItemTypeID INT
|
||||||
PRIMARY KEY (itemTypeID)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Control visibility and placement of system and user item types
|
-- Control visibility and placement of system and user item types
|
||||||
CREATE TABLE IF NOT EXISTS userItemTypeMask (
|
CREATE TABLE IF NOT EXISTS userItemTypeMask (
|
||||||
itemTypeID INT,
|
itemTypeID INTEGER PRIMARY KEY,
|
||||||
display INT, -- 0 == hide, 1 == show, 2 == primary
|
display INT, -- 0 == hide, 1 == show, 2 == primary
|
||||||
PRIMARY KEY (itemTypeID)
|
FOREIGN KEY (itemTypeID) REFERENCES userItemTypes(itemTypeID)
|
||||||
);
|
);
|
||||||
|
|
||||||
-- User-defined fields
|
-- User-defined fields
|
||||||
CREATE TABLE IF NOT EXISTS userFields (
|
CREATE TABLE IF NOT EXISTS userFields (
|
||||||
userFieldID INT,
|
userFieldID INTEGER PRIMARY KEY,
|
||||||
fieldName TEXT,
|
fieldName TEXT
|
||||||
PRIMARY KEY (userFieldID)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Map custom fields to system and custom item types
|
-- Map custom fields to system and custom item types
|
||||||
|
@ -66,6 +64,11 @@ CREATE TABLE IF NOT EXISTS items (
|
||||||
dateModified DATETIME DEFAULT CURRENT_TIMESTAMP
|
dateModified DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS itemDataValues (
|
||||||
|
valueID INTEGER PRIMARY KEY,
|
||||||
|
value
|
||||||
|
);
|
||||||
|
|
||||||
-- Type-specific data for individual items
|
-- Type-specific data for individual items
|
||||||
--
|
--
|
||||||
-- Triggers specified in schema.js due to lack of trigger IF [NOT] EXISTS in Firefox 2.0
|
-- Triggers specified in schema.js due to lack of trigger IF [NOT] EXISTS in Firefox 2.0
|
||||||
|
@ -79,40 +82,31 @@ CREATE TABLE IF NOT EXISTS itemData (
|
||||||
FOREIGN KEY (valueID) REFERENCES itemDataValues(valueID)
|
FOREIGN KEY (valueID) REFERENCES itemDataValues(valueID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS itemDataValues (
|
|
||||||
valueID INT,
|
|
||||||
value,
|
|
||||||
PRIMARY KEY (valueID)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Note data for note items
|
-- Note data for note items
|
||||||
CREATE TABLE IF NOT EXISTS itemNotes (
|
CREATE TABLE IF NOT EXISTS itemNotes (
|
||||||
itemID INT,
|
itemID INTEGER PRIMARY KEY,
|
||||||
sourceItemID INT,
|
sourceItemID INT,
|
||||||
note TEXT,
|
note TEXT,
|
||||||
PRIMARY KEY (itemID),
|
|
||||||
FOREIGN KEY (itemID) REFERENCES items(itemID),
|
FOREIGN KEY (itemID) REFERENCES items(itemID),
|
||||||
FOREIGN KEY (sourceItemID) REFERENCES items(itemID)
|
FOREIGN KEY (sourceItemID) REFERENCES items(itemID)
|
||||||
);
|
);
|
||||||
CREATE INDEX IF NOT EXISTS itemNotes_sourceItemID ON itemNotes(sourceItemID);
|
CREATE INDEX IF NOT EXISTS itemNotes_sourceItemID ON itemNotes(sourceItemID);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS itemNoteTitles (
|
CREATE TABLE IF NOT EXISTS itemNoteTitles (
|
||||||
itemID INT,
|
itemID INTEGER PRIMARY KEY,
|
||||||
title TEXT,
|
title TEXT,
|
||||||
PRIMARY KEY (itemID),
|
|
||||||
FOREIGN KEY (itemID) REFERENCES itemNotes(itemID)
|
FOREIGN KEY (itemID) REFERENCES itemNotes(itemID)
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Metadata for attachment items
|
-- Metadata for attachment items
|
||||||
CREATE TABLE IF NOT EXISTS itemAttachments (
|
CREATE TABLE IF NOT EXISTS itemAttachments (
|
||||||
itemID INT,
|
itemID INTEGER PRIMARY KEY,
|
||||||
sourceItemID INT,
|
sourceItemID INT,
|
||||||
linkMode INT,
|
linkMode INT,
|
||||||
mimeType TEXT,
|
mimeType TEXT,
|
||||||
charsetID INT,
|
charsetID INT,
|
||||||
path TEXT,
|
path TEXT,
|
||||||
originalPath TEXT,
|
originalPath TEXT,
|
||||||
PRIMARY KEY (itemID),
|
|
||||||
FOREIGN KEY (itemID) REFERENCES items(itemID),
|
FOREIGN KEY (itemID) REFERENCES items(itemID),
|
||||||
FOREIGN KEY (sourceItemID) REFERENCES items(sourceItemID)
|
FOREIGN KEY (sourceItemID) REFERENCES items(sourceItemID)
|
||||||
);
|
);
|
||||||
|
@ -121,10 +115,9 @@ CREATE INDEX IF NOT EXISTS itemAttachments_mimeType ON itemAttachments(mimeType)
|
||||||
|
|
||||||
-- Individual entries for each tag
|
-- Individual entries for each tag
|
||||||
CREATE TABLE IF NOT EXISTS tags (
|
CREATE TABLE IF NOT EXISTS tags (
|
||||||
tagID INT,
|
tagID INTEGER PRIMARY KEY,
|
||||||
tag TEXT,
|
tag TEXT,
|
||||||
tagType INT,
|
tagType INT,
|
||||||
PRIMARY KEY (tagID),
|
|
||||||
UNIQUE (tag, tagType)
|
UNIQUE (tag, tagType)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -149,11 +142,10 @@ CREATE INDEX IF NOT EXISTS itemSeeAlso_linkedItemID ON itemSeeAlso(linkedItemID)
|
||||||
|
|
||||||
-- Names of each individual "creator" (inc. authors, editors, etc.)
|
-- Names of each individual "creator" (inc. authors, editors, etc.)
|
||||||
CREATE TABLE IF NOT EXISTS creators (
|
CREATE TABLE IF NOT EXISTS creators (
|
||||||
creatorID INT,
|
creatorID INTEGER PRIMARY KEY,
|
||||||
firstName TEXT,
|
firstName TEXT,
|
||||||
lastName TEXT,
|
lastName TEXT,
|
||||||
fieldMode INT,
|
fieldMode INT
|
||||||
PRIMARY KEY (creatorID)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Associates single or multiple creators to items
|
-- Associates single or multiple creators to items
|
||||||
|
@ -170,10 +162,9 @@ CREATE TABLE IF NOT EXISTS itemCreators (
|
||||||
|
|
||||||
-- Collections for holding items
|
-- Collections for holding items
|
||||||
CREATE TABLE IF NOT EXISTS collections (
|
CREATE TABLE IF NOT EXISTS collections (
|
||||||
collectionID INT,
|
collectionID INTEGER PRIMARY KEY,
|
||||||
collectionName TEXT,
|
collectionName TEXT,
|
||||||
parentCollectionID INT,
|
parentCollectionID INT,
|
||||||
PRIMARY KEY (collectionID),
|
|
||||||
FOREIGN KEY (parentCollectionID) REFERENCES collections(collectionID)
|
FOREIGN KEY (parentCollectionID) REFERENCES collections(collectionID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -189,9 +180,8 @@ CREATE TABLE IF NOT EXISTS collectionItems (
|
||||||
CREATE INDEX IF NOT EXISTS itemID ON collectionItems(itemID);
|
CREATE INDEX IF NOT EXISTS itemID ON collectionItems(itemID);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS savedSearches (
|
CREATE TABLE IF NOT EXISTS savedSearches (
|
||||||
savedSearchID INT,
|
savedSearchID INTEGER PRIMARY KEY,
|
||||||
savedSearchName TEXT,
|
savedSearchName TEXT
|
||||||
PRIMARY KEY(savedSearchID)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS savedSearchConditions (
|
CREATE TABLE IF NOT EXISTS savedSearchConditions (
|
||||||
|
@ -201,18 +191,17 @@ CREATE TABLE IF NOT EXISTS savedSearchConditions (
|
||||||
operator TEXT,
|
operator TEXT,
|
||||||
value TEXT,
|
value TEXT,
|
||||||
required NONE,
|
required NONE,
|
||||||
PRIMARY KEY(savedSearchID, searchConditionID),
|
PRIMARY KEY (savedSearchID, searchConditionID),
|
||||||
FOREIGN KEY (savedSearchID) REFERENCES savedSearches(savedSearchID)
|
FOREIGN KEY (savedSearchID) REFERENCES savedSearches(savedSearchID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS fulltextItems (
|
CREATE TABLE IF NOT EXISTS fulltextItems (
|
||||||
itemID INT,
|
itemID INTEGER PRIMARY KEY,
|
||||||
version INT,
|
version INT,
|
||||||
indexedPages INT,
|
indexedPages INT,
|
||||||
totalPages INT,
|
totalPages INT,
|
||||||
indexedChars INT,
|
indexedChars INT,
|
||||||
totalChars INT,
|
totalChars INT,
|
||||||
PRIMARY KEY (itemID),
|
|
||||||
FOREIGN KEY (itemID) REFERENCES items(itemID)
|
FOREIGN KEY (itemID) REFERENCES items(itemID)
|
||||||
);
|
);
|
||||||
CREATE INDEX IF NOT EXISTS fulltextItems_version ON fulltextItems(version);
|
CREATE INDEX IF NOT EXISTS fulltextItems_version ON fulltextItems(version);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user