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

49 lines
1.8 KiB
MySQL
Raw Normal View History

2019-08-23 20:58:32 -04:00
-- -*- mode:sql sql-product:sqlite -*-
-- Parent table -- Table for Staves --
2019-08-23 20:58:32 -04:00
CREATE TABLE staff (
staff_id INTEGER PRIMARY KEY NOT NULL,
"name" TEXT NOT NULL UNIQUE, -- every staff should have a name --
"level" INTEGER NOT NULL, -- every staff should have a level --
2019-08-29 20:10:19 -04:00
price INTEGER, /* stored in GP
could add NOT NULL and store 0s */
2019-08-23 20:58:32 -04:00
bulk INTEGER, -- could add NOT NULL and store 0s --
2019-08-29 20:10:19 -04:00
usage TEXT, /* always "held in 1 hand"
Consider storing in another table */
item_bonus INTEGER, -- If the staff gives an item bonus --
2019-08-23 20:58:32 -04:00
craft_requirements TEXT, -- "Supply one casting of all listed levels of all listed spells." --
-- Consider storing in another table --
source_id INTEGER NOT NULL,
source_pages INTEGER NOT NULL,
"description" TEXT,
FOREIGN KEY (source_id) REFERENCES sources(sources_id)
);
-- Child table -- many-to-many -- staff-to-spells --
2019-08-23 20:58:32 -04:00
CREATE TABLE staff_spell (
staff_id INTEGER NOT NULL,
"level" INTEGER NOT NULL, -- This represents the level of the spell in the staff where 0 = cantrip --
-- Consider renaming this column --
spell_id INTEGER NOT NULL,
PRIMARY KEY (staff_id, "level", spell_id),
2019-08-23 20:58:32 -04:00
FOREIGN KEY (staff_id) REFERENCES staff(staff_id),
2019-08-29 20:10:19 -04:00
FOREIGN KEY (spell_id) REFERENCES spells(spells_id)
);
2019-08-29 17:34:39 -04:00
-- Child table -- one-to-many --
CREATE TABLE staff_activations (
staff_id INTEGER NOT NULL,
"activation" TEXT NOT NULL,
effect TEXT NOT NULL,
PRIMARY KEY (staff_id, "activation", effect),
2019-08-29 20:10:19 -04:00
FOREIGN KEY (staff_id) REFERENCES staff(staff_id)
2019-08-29 17:34:39 -04:00
);
-- Child table -- many-to-many -- staff-to-traits --
CREATE TABLE staff_trait (
staff_id INTEGER NOT NULL,
trait_id INTEGER NOT NULL,
PRIMARY KEY (staff_id, trait_id),
2019-08-29 20:10:19 -04:00
FOREIGN KEY (staff_id) REFERENCES staff(staff_id),
2019-08-29 17:34:39 -04:00
FOREIGN KEY (trait_id) REFERENCES traits(trait_id)
2019-08-23 20:58:32 -04:00
);