Relations overhaul (requires new DB upgrade from 4.0)
Relations are now properties of collections and items rather than first-class objects, stored in separate collectionRelations and itemRelations tables with ids for subjects, with foreign keys to the associated data objects. Related items now use dc:relation relations rather than a separate table (among other reasons, because API syncing won't necessarily sync both items at the same time, so they can't be stored by id). The UI assigns related-item relations bidirectionally, and checks for related-item and linked-object relations are done unidirectionally by default. dc:isReplacedBy is now dc:replaces, so that the subject is an existing object, and the predicate is now named Zotero.Attachments.replacedItemPredicate. Some additional work is still needed, notably around following replaced-item relations, and migration needs to be tested more fully, but this seems to mostly work.
This commit is contained in:
parent
75bcfcb685
commit
a740658452
24 changed files with 1414 additions and 812 deletions
|
@ -210,25 +210,6 @@ CREATE TRIGGER fku_itemNotes
|
|||
END;
|
||||
|
||||
|
||||
-- itemSeeAlso libraryID
|
||||
DROP TRIGGER IF EXISTS fki_itemSeeAlso_libraryID;
|
||||
CREATE TRIGGER fki_itemSeeAlso_libraryID
|
||||
BEFORE INSERT ON itemSeeAlso
|
||||
FOR EACH ROW BEGIN
|
||||
SELECT RAISE(ABORT, 'insert on table "itemSeeAlso" violates foreign key constraint "fki_itemSeeAlso_libraryID"')
|
||||
WHERE (SELECT libraryID FROM items WHERE itemID = NEW.itemID) != (SELECT libraryID FROM items WHERE itemID = NEW.linkedItemID);---
|
||||
END;
|
||||
|
||||
DROP TRIGGER IF EXISTS fku_itemSeeAlso_libraryID;
|
||||
CREATE TRIGGER fku_itemSeeAlso_libraryID
|
||||
BEFORE UPDATE ON itemSeeAlso
|
||||
FOR EACH ROW BEGIN
|
||||
SELECT RAISE(ABORT, 'update on table "itemSeeAlso" violates foreign key constraint "fku_itemSeeAlso_libraryID"')
|
||||
WHERE (SELECT libraryID FROM items WHERE itemID = NEW.itemID) != (SELECT libraryID FROM items WHERE itemID = NEW.linkedItemID);---
|
||||
END;
|
||||
|
||||
|
||||
|
||||
-- itemTags libraryID
|
||||
DROP TRIGGER IF EXISTS fki_itemTags_libraryID;
|
||||
CREATE TRIGGER fki_itemTags_libraryID
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue