From 2f10a1c7e6074e6dcae39df82e7c32a80175a9a6 Mon Sep 17 00:00:00 2001 From: alwayscompiling Date: Sat, 26 Nov 2022 20:52:54 -0500 Subject: [PATCH] Final changes to correct primary key and uniqueness rules. --- MySQL_docker/highscores_database.sql | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/MySQL_docker/highscores_database.sql b/MySQL_docker/highscores_database.sql index 4a4adc6..9f40191 100644 --- a/MySQL_docker/highscores_database.sql +++ b/MySQL_docker/highscores_database.sql @@ -2,32 +2,34 @@ CREATE DATABASE highscores; use highscores; CREATE TABLE Guilds( - GuildId bigint unsigned not null, + GuildId bigint unsigned not null unique, SubmissionChannel bigint unsigned, UsernameLength smallint DEFAULT 12, VerificationChannel bigint unsigned, PRIMARY KEY (GuildId) ); -CREATE TABLE Groups( +CREATE TABLE CategoryGroups( ChannelId bigint unsigned, - GroupId int not null AUTO_INCREMENT, + GroupId int unsigned not null unique AUTO_INCREMENT, GroupName varchar(50) not null, - GuildId int not null, + GuildId bigint unsigned not null, MessageId bigint unsigned, PadLength smallint not null DEFAULT 26, Size smallint not null, -- unsure if I like this name. Also unsure belong here or in Category + CONSTRAINT UniqueGuildCategoryGroup UNIQUE (GuildId, GroupName), FOREIGN KEY (GuildId) REFERENCES Guilds(GuildId), PRIMARY KEY (GroupId) ); CREATE TABLE Categories( - CategoryId int not null AUTO_INCREMENT, + CategoryId int unsigned not null unique AUTO_INCREMENT, CategoryName varchar(30) not null, - GroupId int not null, + GroupId int unsigned not null, IsAscending boolean not null DEFAULT true, IsTimeRecord boolean not null DEFAULT false, IsValidated boolean not null DEFAULT true, + CONSTRAINT UniqueCategoryInGroup UNIQUE (GroupId, CategoryName), FOREIGN KEY (GroupId) REFERENCES CategoryGroups(GroupId), PRIMARY Key (CategoryId) ); @@ -35,7 +37,7 @@ CREATE TABLE Categories( CREATE TABLE Scores( UserName varchar(30) not null, Score float not null, -- Maybe should have time and int scores?? timestamp type? - CategoryId int not null, + CategoryId int unsigned not null, FOREIGN KEY (CategoryId) REFERENCES Categories(CategoryId), - CONSTRAINT PKScore PRIMARY KEY (CategoryId, UserName) -- i think this means there isnt a column for this key but the key is made up of categoryid and username + PRIMARY KEY (CategoryId, UserName) ); \ No newline at end of file