From 62b8374c892157ac291c101f15efaa70aeffb8ac Mon Sep 17 00:00:00 2001 From: Tim <47184194+imgde@users.noreply.github.com> Date: Tue, 3 Jun 2025 23:14:59 +0200 Subject: [PATCH] Merge SQL Scripts (flyway is for cowards) --- 00-backend/datasource/database.sqlite | Bin 49152 -> 49152 bytes .../webshop/repository/entities/Account.java | 2 +- .../webshop/repository/entities/Image.java | 12 +-- .../webshop/repository/entities/Order.java | 2 +- .../repository/entities/OrderItem.java | 4 +- 00-backend/src/main/resources/db/DBv1.sql | 56 ----------- 00-backend/src/main/resources/db/DBv2.sql | 20 ---- 00-backend/src/main/resources/db/DBv3.sql | 20 ---- 00-backend/src/main/resources/db/initdb.sql | 94 ++++++++++++++---- 9 files changed, 83 insertions(+), 127 deletions(-) delete mode 100644 00-backend/src/main/resources/db/DBv1.sql delete mode 100644 00-backend/src/main/resources/db/DBv2.sql delete mode 100644 00-backend/src/main/resources/db/DBv3.sql diff --git a/00-backend/datasource/database.sqlite b/00-backend/datasource/database.sqlite index b43f27e18d56284bafc1e4d8f49bf887abbf8953..017712bbe0594cda8e55be5e1c953bca5aab1eef 100644 GIT binary patch literal 49152 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 N_N6 0), - FOREIGN KEY (orderId) REFERENCES Orders(id) - ON DELETE CASCADE - ON UPDATE CASCADE, - FOREIGN KEY (articleId) REFERENCES Articles(id) - ON DELETE SET NULL - ON UPDATE CASCADE, - FOREIGN KEY (articleConfId) REFERENCES ArticleConfigurations(id) - ON DELETE SET NULL - ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS Accounts( - id INTEGER PRIMARY KEY NOT NULL, - customerId INTEGER NOT NULL, - email TEXT NOT NULL, - password TEXT NOT NULL, - lang_i18n TEXT NOT NULL, - FOREIGN KEY (customerId) REFERENCES Customers(id) - ON DELETE CASCADE - ON UPDATE CASCADE -); \ No newline at end of file diff --git a/00-backend/src/main/resources/db/DBv2.sql b/00-backend/src/main/resources/db/DBv2.sql deleted file mode 100644 index 7795aad..0000000 --- a/00-backend/src/main/resources/db/DBv2.sql +++ /dev/null @@ -1,20 +0,0 @@ -DROP TABLE IF EXISTS OrderItems; - -CREATE TABLE IF NOT EXISTS OrderItems( - orderId INTEGER NOT NULL, - articleId INTEGER NOT NULL, - articleConfId INTEGER NULL, - amount INTEGER NOT NULL, - - PRIMARY KEY (orderId, articleId, articleConfId), -- added - CONSTRAINT cAmount CHECK (amount > 0), - FOREIGN KEY (orderId) REFERENCES Orders(id) - ON DELETE CASCADE - ON UPDATE CASCADE, - FOREIGN KEY (articleId) REFERENCES Articles(id) - ON DELETE SET NULL - ON UPDATE CASCADE, - FOREIGN KEY (articleConfId) REFERENCES ArticleConfigurations(id) - ON DELETE SET NULL - ON UPDATE CASCADE -); \ No newline at end of file diff --git a/00-backend/src/main/resources/db/DBv3.sql b/00-backend/src/main/resources/db/DBv3.sql deleted file mode 100644 index 157e72b..0000000 --- a/00-backend/src/main/resources/db/DBv3.sql +++ /dev/null @@ -1,20 +0,0 @@ -DROP TABLE IF EXISTS ArticleConfigurations; - -DROP TABLE OrderItems; - -CREATE TABLE IF NOT EXISTS OrderItems -( - id INTEGER NOT NULL PRIMARY KEY, --composite pk was wrong - orderId INTEGER NOT NULL, - articleId INTEGER NOT NULL, - amount INTEGER NOT NULL, - -- art conf not needed - - CONSTRAINT cAmount CHECK (amount > 0), - FOREIGN KEY (orderId) REFERENCES Orders (id) - ON DELETE CASCADE - ON UPDATE CASCADE, - FOREIGN KEY (articleId) REFERENCES Articles (id) - ON DELETE SET NULL - ON UPDATE CASCADE -); \ No newline at end of file diff --git a/00-backend/src/main/resources/db/initdb.sql b/00-backend/src/main/resources/db/initdb.sql index 43ed362..45972bb 100644 --- a/00-backend/src/main/resources/db/initdb.sql +++ b/00-backend/src/main/resources/db/initdb.sql @@ -1,30 +1,84 @@ -- articles -CREATE TABLE IF NOT EXISTS Articles( - id INTEGER PRIMARY KEY NOT NULL, - uuid TEXT UNIQUE NOT NULL, -- UUID - stock INTEGER NOT NULL DEFAULT 0, - name TEXT NOT NULL, - description TEXT NULL, --in html - price100 INTEGER NOT NULL, -- in cents - discount100 INTEGER NULL, -- in percent - category TEXT NULL, +CREATE TABLE IF NOT EXISTS Articles +( + id INTEGER PRIMARY KEY NOT NULL, + uuid TEXT UNIQUE NOT NULL, -- UUID + stock INTEGER NOT NULL DEFAULT 0, + name TEXT NOT NULL, + description TEXT NULL, --in html + price100 INTEGER NOT NULL, -- in cents + discount100 INTEGER NULL, -- in percent + category TEXT NULL, CONSTRAINT c_stock CHECK ( stock >= 0 ) ); -- article images -CREATE TABLE IF NOT EXISTS Images( - id INTEGER PRIMARY KEY NOT NULL, - articleId INTEGER NOT NULL, - uri TEXT NOT NULL, - FOREIGN KEY (articleId) REFERENCES Articles(id) +CREATE TABLE IF NOT EXISTS Images +( + id INTEGER PRIMARY KEY NOT NULL, + article_id INTEGER NOT NULL, + uri TEXT NOT NULL, + FOREIGN KEY (article_id) REFERENCES Articles (id) ); -CREATE TABLE IF NOT EXISTS Reviews( - id INTEGER PRIMARY KEY NOT NULL, - articleId INTEGER NOT NULL, - rating INTEGER NOT NULL, - content TEXT NULL, - FOREIGN KEY (articleId) REFERENCES Articles(id), +CREATE TABLE IF NOT EXISTS Reviews +( + id INTEGER PRIMARY KEY NOT NULL, + article_id INTEGER NOT NULL, + rating INTEGER NOT NULL, + content TEXT NULL, + FOREIGN KEY (article_id) REFERENCES Articles (id), CONSTRAINT c_rating CHECK ( rating >= 0 AND rating <= 10) +); + + + +CREATE TABLE IF NOT EXISTS Customers +( + id INTEGER PRIMARY KEY NOT NULL, + name TEXT NOT NULL, --nachname + surname TEXT NOT NULL, --vorname, + address TEXT NOT NULL, + country TEXT NOT NULL, + zip TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS Orders +( + id INTEGER PRIMARY KEY NOT NULL, + customer_id INTEGER NOT NULL, + time INTEGER NOT NULL, --unix millis or epoch, TBD + FOREIGN KEY (customer_id) REFERENCES Customers (id) + ON DELETE CASCADE + ON UPDATE CASCADE +); + +CREATE TABLE IF NOT EXISTS Accounts +( + id INTEGER PRIMARY KEY NOT NULL, + customer_id INTEGER NOT NULL, + email TEXT NOT NULL, + password TEXT NOT NULL, + lang_i18n TEXT NOT NULL, + FOREIGN KEY (customer_id) REFERENCES Customers (id) + ON DELETE CASCADE + ON UPDATE CASCADE +); + +CREATE TABLE IF NOT EXISTS OrderItems +( + id INTEGER NOT NULL PRIMARY KEY, + order_id INTEGER NOT NULL, + article_id INTEGER NOT NULL, + amount INTEGER NOT NULL, + -- art conf not needed + + CONSTRAINT cAmount CHECK (amount > 0), + FOREIGN KEY (order_id) REFERENCES Orders (id) + ON DELETE CASCADE + ON UPDATE CASCADE, + FOREIGN KEY (article_id) REFERENCES Articles (id) + ON DELETE SET NULL + ON UPDATE CASCADE ); \ No newline at end of file