From 83f513554f7582b998b0a1a6a0cff72af2ea2ee7 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Thu, 16 Apr 2026 23:03:26 +0200 Subject: [PATCH] Feat: Added new table for favourites --- docs/SqlDatabase/ER-DiagramFile.mwb.bak | Bin 17828 -> 17758 bytes .../team6/database/DatabaseSetup.java | 26 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/docs/SqlDatabase/ER-DiagramFile.mwb.bak b/docs/SqlDatabase/ER-DiagramFile.mwb.bak index c43ee851d8fb78e57a2940eef8fb6869b8e7e774..babd305a30084c813a358681ded3f2ffa450fb59 100644 GIT binary patch delta 15066 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 diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseSetup.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseSetup.java index c558640..46a444b 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseSetup.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseSetup.java @@ -267,6 +267,30 @@ FOREIGN KEY (`UUID_charity`) ENGINE = InnoDB; """; + String userHasFavourites = + """ + -- ----------------------------------------------------- + -- Table `apbaluna`.`User_has_favourites` + -- ----------------------------------------------------- + CREATE TABLE IF NOT EXISTS `apbaluna`.`User_has_favourites` ( + `Favourite_Charity` CHAR(36) NOT NULL, + `Favourer` CHAR(36) NOT NULL, + PRIMARY KEY (`Favourite_Charity`, `Favourer`), + INDEX `fk_Charities_has_User_User2_idx` (`Favourer` ASC) VISIBLE, + INDEX `fk_Charities_has_User_Charities2_idx` (`Favourite_Charity` ASC) VISIBLE, + CONSTRAINT `fk_Charities_has_User_Charities2` + FOREIGN KEY (`Favourite_Charity`) + REFERENCES `apbaluna`.`Charities` (`UUID_charities`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_Charities_has_User_User2` + FOREIGN KEY (`Favourer`) + REFERENCES `apbaluna`.`User` (`UUID_User`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; + """; + try (Connection conn = connection.getMySqlConnection(); Statement s = conn.createStatement()) { @@ -280,6 +304,8 @@ FOREIGN KEY (`UUID_charity`) s.execute(charityCategoriesTable); s.execute(charityUserTable); s.execute(charityVanityTable); + s.execute(userHasFavourites); + } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("Error creating table.");