81 lines
2.3 KiB
SQL
81 lines
2.3 KiB
SQL
CREATE TABLE IF NOT EXISTS `cards` (
|
|
`scryfall_id` TEXT PRIMARY KEY,
|
|
`name` TEXT NOT NULL,
|
|
`set_code` TEXT NOT NULL,
|
|
`collector_number` TEXT NOT NULL,
|
|
`release_date` TEXT NOT NULL,
|
|
`rarity` TEXT NOT NULL,
|
|
`color_identity` TEXT NOT NULL,
|
|
`cmc` TEXT NOT NULL, -- Decimal value
|
|
`type_line` TEXT NOT NULL,
|
|
`foil` INTEGER NOT NULL DEFAULT 0,
|
|
`nonfoil` INTEGER NOT NULL DEFAULT 1,
|
|
`variation` INTEGER NOT NULL DEFAULT 0,
|
|
`edhrec_rank` INTEGER,
|
|
`oracle_text` TEXT
|
|
);
|
|
|
|
CREATE INDEX `cards_name` ON `cards`(`name` COLLATE nocase);
|
|
CREATE INDEX `cards_rarity` ON `cards`(`rarity`);
|
|
CREATE INDEX `cards_color_identity` ON `cards`(`color_identity`);
|
|
|
|
CREATE TABLE IF NOT EXISTS `copies` (
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
`collection` TEXT NOT NULL DEFAULT 'Default',
|
|
`scryfall_id` TEXT,
|
|
`isFoil` INTEGER NOT NULL DEFAULT 0,
|
|
`language` TEXT,
|
|
`condition` TEXT,
|
|
FOREIGN KEY (`scryfall_id`) REFERENCES `cards`(`scryfall_id`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `card_prices` (
|
|
`scryfall_id` TEXT,
|
|
`date` TEXT,
|
|
`usd` TEXT, -- Decimal value
|
|
`usd_foil` TEXT, -- Decimal value
|
|
`eur` TEXT, -- Decimal value
|
|
`eur_foil` TEXT, -- Decimal value
|
|
`tix` TEXT, -- Decimal value
|
|
PRIMARY KEY (`scryfall_id`, `date`),
|
|
FOREIGN KEY (`scryfall_id`) REFERENCES `cards`(`scryfall_id`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `sets` (
|
|
`set_code` TEXT PRIMARY KEY,
|
|
`name` TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `rarities` (
|
|
`rarity` TEXT PRIMARY KEY,
|
|
`rarity_ord` INTEGER NOT NULL
|
|
);
|
|
|
|
DELETE FROM `rarities`;
|
|
INSERT INTO `rarities` (`rarity`, `rarity_ord`) VALUES
|
|
('common', 1),
|
|
('uncommon', 2),
|
|
('rare', 3),
|
|
('special', 4),
|
|
('mythic', 5),
|
|
('bonus', 6);
|
|
|
|
CREATE TABLE IF NOT EXISTS `legalities` (
|
|
`scryfall_id` TEXT NOT NULL,
|
|
`format` TEXT NOT NULL,
|
|
`legality` TEXT NOT NULL,
|
|
PRIMARY KEY (`scryfall_id`, `format`),
|
|
FOREIGN KEY (`scryfall_id`) REFERENCES `cards`(`scryfall_id`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `games` (
|
|
`scryfall_id` TEXT NOT NULL,
|
|
`game` TEXT NOT NULL, -- 'paper', 'arena', or 'mtgo'
|
|
PRIMARY KEY (`scryfall_id`, `game`),
|
|
FOREIGN KEY (`scryfall_id`) REFERENCES `cards`(`scryfall_id`)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS `vars` (
|
|
`key` TEXT PRIMARY KEY,
|
|
`value` TEXT
|
|
);
|