Working Login & Register functionality
This commit is contained in:
@ -3,7 +3,8 @@ CREATE DATABASE repository;
|
||||
USE repository;
|
||||
|
||||
-- Required info for an account
|
||||
CREATE TABLE Users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE Users (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(31) UNIQUE NOT NULL,
|
||||
email VARCHAR(255) UNIQUE NOT NULL,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
@ -15,7 +16,8 @@ CREATE TABLE Users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
);
|
||||
|
||||
-- Enables multiple packages to have the same base yet different components
|
||||
CREATE TABLE PackageBases ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE PackageBases (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(127) UNIQUE NOT NULL,
|
||||
description VARCHAR(510) NULL,
|
||||
|
||||
@ -24,27 +26,35 @@ CREATE TABLE PackageBases ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
);
|
||||
|
||||
-- User roles for working on packages: flagger, packager, submitter, maintainer, etc.
|
||||
CREATE TABLE PackageBaseRoles ( id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE PackageBaseRoles (
|
||||
id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(31) UNIQUE NOT NULL,
|
||||
description VARCHAR(255) NULL
|
||||
);
|
||||
INSERT INTO PackageBaseRoles (id, name) VALUES
|
||||
(1, 'submitter'),
|
||||
(2, 'packager'),
|
||||
(3, 'maintainer'),
|
||||
(4, 'flagger');
|
||||
|
||||
-- Roles that a user has for a package
|
||||
CREATE TABLE PackageBaseUserRoles (
|
||||
base_id INT UNSIGNED,
|
||||
user_id INT UNSIGNED,
|
||||
role_id TINYINT UNSIGNED,
|
||||
base INT UNSIGNED,
|
||||
user INT UNSIGNED,
|
||||
role TINYINT UNSIGNED,
|
||||
|
||||
comment VARCHAR(255) NULL,
|
||||
|
||||
PRIMARY KEY (base_id, user_id, role_id), -- composite key
|
||||
FOREIGN KEY (base_id) REFERENCES PackageBases(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (role_id) REFERENCES PackageBaseRoles(id) ON DELETE CASCADE
|
||||
PRIMARY KEY (base, user, role), -- composite key
|
||||
FOREIGN KEY (base) REFERENCES PackageBases(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user) REFERENCES Users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (role) REFERENCES PackageBaseRoles(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Information about the actual packages
|
||||
CREATE TABLE Packages ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
package_base INT UNSIGNED NOT NULL,
|
||||
CREATE TABLE Packages (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
base INT UNSIGNED NOT NULL,
|
||||
name VARCHAR(127) UNIQUE NOT NULL,
|
||||
version VARCHAR(127) NOT NULL,
|
||||
description VARCHAR(255) NULL,
|
||||
@ -54,11 +64,12 @@ CREATE TABLE Packages ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL,
|
||||
|
||||
FOREIGN KEY (package_base) REFERENCES PackageBases (id) ON DELETE CASCADE
|
||||
FOREIGN KEY (base) REFERENCES PackageBases (id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- depends, makedepends, optdepends, etc.
|
||||
CREATE TABLE DependencyTypes ( id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE DependencyTypes (
|
||||
id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(31) UNIQUE NOT NULL
|
||||
);
|
||||
INSERT INTO DependencyTypes (id, name) VALUES
|
||||
@ -68,7 +79,8 @@ INSERT INTO DependencyTypes (id, name) VALUES
|
||||
(4, 'optdepends');
|
||||
|
||||
-- Track which dependencies a package has
|
||||
CREATE TABLE PackageDependencies ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE PackageDependencies (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
arch VARCHAR(63) NULL,
|
||||
requirement VARCHAR(255) NULL,
|
||||
description VARCHAR(127) NULL,
|
||||
@ -82,7 +94,8 @@ CREATE TABLE PackageDependencies ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
);
|
||||
|
||||
-- conflicts, provides, replaces, etc.
|
||||
CREATE TABLE RelationTypes ( id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE RelationTypes (
|
||||
id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(31) UNIQUE NOT NULL
|
||||
);
|
||||
INSERT INTO RelationTypes (id, name) VALUES
|
||||
@ -91,9 +104,10 @@ INSERT INTO RelationTypes (id, name) VALUES
|
||||
(3, 'replaces');
|
||||
|
||||
-- Track which conflicts, provides and replaces a package has
|
||||
CREATE TABLE PackageRelations ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
CREATE TABLE PackageRelations (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
arch VARCHAR(63) NULL,
|
||||
requiremen VARCHAR(255) NULL,
|
||||
requirement VARCHAR(255) NULL,
|
||||
|
||||
package INT UNSIGNED NOT NULL,
|
||||
relation_type TINYINT UNSIGNED NOT NULL,
|
||||
|
Reference in New Issue
Block a user