cheese-shop/sql/def.sql

54 lines
1.4 KiB
MySQL
Raw Normal View History

2020-06-26 17:50:02 +02:00
DROP DATABASE IF EXISTS cheese_shop;
CREATE DATABASE cheese_shop;
USE cheese_shop;
2020-07-04 11:04:53 +02:00
CREATE TABLE contacts (
2020-06-28 05:00:21 +02:00
email varchar(255) PRIMARY KEY,
name varchar(255));
2020-07-04 20:21:31 +02:00
CREATE TABLE releases (
id smallint AUTO_INCREMENT PRIMARY KEY,
project varchar(32),
version varchar(32),
2020-06-26 17:50:02 +02:00
summary varchar(255),
homepage varchar(2083),
2020-06-28 05:00:21 +02:00
email varchar(255),
2020-07-04 20:21:31 +02:00
CONSTRAINT integrity UNIQUE (project, version),
2020-06-28 05:00:21 +02:00
FOREIGN KEY (email) REFERENCES contacts(email));
2020-06-26 17:50:02 +02:00
2020-07-04 11:04:53 +02:00
CREATE TABLE troves (
2020-06-28 05:00:21 +02:00
id smallint AUTO_INCREMENT PRIMARY KEY,
2020-07-04 18:05:06 +02:00
classifier varchar(255) UNIQUE);
2020-06-26 17:50:02 +02:00
2020-07-04 11:04:53 +02:00
CREATE TABLE classifiers (
2020-06-26 17:50:02 +02:00
release_id smallint,
trove_id smallint,
2020-06-28 05:00:21 +02:00
PRIMARY KEY (release_id, trove_id),
FOREIGN KEY (release_id) REFERENCES releases(id),
FOREIGN KEY (trove_id) REFERENCES troves(id));
2020-06-26 17:50:02 +02:00
2020-07-04 11:04:53 +02:00
CREATE TABLE keywords (
2020-06-26 17:50:02 +02:00
release_id smallint,
term varchar(32),
2020-06-28 05:00:21 +02:00
PRIMARY KEY (release_id, term),
FOREIGN KEY (release_id) REFERENCES releases(id));
2020-06-26 17:50:02 +02:00
2020-07-04 18:05:06 +02:00
CREATE TABLE dependencies (
release_id smallint,
dependency varchar(64),
PRIMARY KEY (release_id, dependency),
FOREIGN KEY (release_id) REFERENCES releases(id));
2020-07-04 11:04:53 +02:00
CREATE TABLE distributions (
2020-06-26 17:50:02 +02:00
release_id smallint,
filename varchar(255),
2020-07-04 18:05:06 +02:00
size int,
2020-06-26 17:50:02 +02:00
url varchar(255),
2020-07-04 18:05:06 +02:00
dist_type varchar(16),
2020-06-26 17:50:02 +02:00
python_version varchar(8),
requires_python varchar(32),
sha256 char(64),
md5 char(32),
2020-06-28 05:00:21 +02:00
PRIMARY KEY (release_id, filename),
FOREIGN KEY (release_id) REFERENCES releases(id));