pathfinder-2-sqlite-MIRROR/schema/actions.sql

54 lines
1.7 KiB
SQL

-- -*- mode:sql sql-product:sqlite -*-
CREATE TABLE actioncosts (
actioncosts_id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
abbr TEXT NOT NULL UNIQUE
);
-- TODO remove sources_id and sources_pages once sourceentries is finished --
CREATE TABLE actioncategories (
actioncategories_id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
descr TEXT NOT NULL UNIQUE,
);
-- TODO remove sources_id and sources_pages once sourceentries is finished --
CREATE TABLE actions (
actions_id INTEGER PRIMARY KEY,
actioncategories_id INTEGER NOT NULL,
actioncosts_id INTEGER,
name TEXT NOT NULL UNIQUE,
req TEXT,
trigger TEXT,
descr TEXT NOT NULL,
FOREIGN KEY (actioncategories_id) REFERENCES actioncategories(actioncategories_id),
FOREIGN KEY (actioncosts_id) REFERENCES actioncosts(actioncosts_id),
FOREIGN KEY (sources_id) REFERENCES sources(sources_id)
);
CREATE TABLE actions_traits (
id INTEGER PRIMARY KEY,
actions_id INTEGER NOT NULL,
traits_id INTEGER NOT NULL
);
-- Joining table --
CREATE TABLE actioncategories_sourceentries (
id INTEGER PRIMARY KEY
,actioncategories_id INTEGER NOT NULL
,sourceentry_id INTEGER NOT NULL
,UNIQUE (id, actioncategories_id, soruceentry_id),
,FOREIGN KEY (actioncategories_id) REFERENCES actioncategories(actioncategories_id)
,FOREIGN KEY (sourceentry_id) REFERENCES sourceentries(sourceentry_id)
);
-- Joining table --
CREATE TABLE actions_sourceentries (
id INTEGER PRIMARY KEY
,actions_id INTEGER NOT NULL
,sourceentry_id INTEGER NOT NULL
,UNIQUE (id, actions_id, soruceentry_id),
,FOREIGN KEY (actions_id) REFERENCES actions(actions_id)
,FOREIGN KEY (sourceentry_id) REFERENCES sourceentries(sourceentry_id)
);