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

63 lines
1.9 KiB
MySQL
Raw Normal View History

-- -*- mode:sql sql-product:sqlite -*-
CREATE TABLE spelltypes (
spelltypes_id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE
);
CREATE TABLE spellcomponents (
spellcomponents_id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE
);
CREATE TABLE spelltraditions (
spelltraditions_id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE
);
CREATE TABLE spellschools (
spellschools_id INTEGER PRIMARY KEY,
sources_id INTEGER NOT NULL,
sources_pages TEXT,
name TEXT NOT NULL UNIQUE,
descr TEXT NOT NULL,
FOREIGN KEY (sources_id) REFERENCES sources(sources_id)
);
-- TODO eventually once data is finalized, lock down variables as NOT NULL /
-- UNIQUE as sanity requires :)
CREATE TABLE spells (
spells_id INTEGER PRIMARY KEY,
sources_id INTEGER NOT NULL, -- generated in spells.py from scraped data
sources_pages TEXT, -- generated in spells.py from scraped data
name TEXT NOT NULL UNIQUE, -- scraped from github repo
level INTEGER, -- scraped from github repo
trigger TEXT, -- TODO in spells.py
descr TEXT, -- scraped from github repo
2019-08-08 22:53:43 -04:00
spelltypes_id INTEGER, -- generated from spells.py
range_text TEXT, -- scraped from github repo
range_ft INTEGER, -- generated from text in spells.py
targets TEXT, -- TODO in spells.py
nethysurl TEXT, -- scraped from github repo
2019-08-08 18:30:13 -04:00
FOREIGN KEY (sources_id) REFERENCES sources(sources_id),
FOREIGN KEY (spelltypes_id) REFERENCES spelltypes(spelltypes_id)
);
CREATE TABLE spells_spellcomponents(
spells_id INTEGER NOT NULL,
spellcomponents_id INTEGER NOT NULL,
FOREIGN KEY (spells_id) REFERENCES spells(spells_id),
FOREIGN KEY (spellcomponents_id) REFERENCES spellcomponents(spellcomponents_id)
);
CREATE TABLE spells_traits (
id INTEGER PRIMARY KEY,
spells_id INTEGER NOT NULL,
traits_id INTEGER NOT NULL,
UNIQUE(spells_id, traits_id),
FOREIGN KEY (spells_id) REFERENCES spells(spells_id),
FOREIGN KEY (traits_id) REFERENCES traits(traits_id)
);