Prechádzať zdrojové kódy

fix: add missing plates tables and partitioned products permissions

lanfr144 1 týždeň pred
rodič
commit
f85d03be09
1 zmenil súbory, kde vykonal 30 pridanie a 0 odobranie
  1. 30 0
      init.sql

+ 30 - 0
init.sql

@@ -59,6 +59,25 @@ CREATE TABLE IF NOT EXISTS user_health_profiles (
 ) ENGINE=InnoDB;
 
 GRANT SELECT, INSERT, UPDATE, DELETE ON food_db.user_health_profiles TO 'db_app_auth'@'%';
+
+-- Step A.3: Create Plate Builder Tables
+CREATE TABLE IF NOT EXISTS plates (
+    id INT AUTO_INCREMENT PRIMARY KEY,
+    user_id INT NOT NULL,
+    plate_name VARCHAR(255) NOT NULL,
+    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+
+CREATE TABLE IF NOT EXISTS plate_items (
+    id INT AUTO_INCREMENT PRIMARY KEY,
+    plate_id INT NOT NULL,
+    product_code VARCHAR(50) NOT NULL,
+    quantity_grams FLOAT NOT NULL,
+    FOREIGN KEY (plate_id) REFERENCES plates(id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+
+GRANT SELECT, INSERT, UPDATE, DELETE ON food_db.plates TO 'db_app_auth'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE ON food_db.plate_items TO 'db_app_auth'@'%';
 FLUSH PRIVILEGES;
 
 -- Step A.2: Create the table with known columns (Example structure for OpenFoodFacts)
@@ -90,7 +109,18 @@ CREATE TABLE IF NOT EXISTS products (
 
 -- Step B: The Owner grants explicit privileges to the Reader and Loader
 GRANT SELECT ON food_db.products TO 'db_reader'@'%';
+GRANT SELECT ON food_db.products_core TO 'db_reader'@'%';
+GRANT SELECT ON food_db.products_allergens TO 'db_reader'@'%';
+GRANT SELECT ON food_db.products_macros TO 'db_reader'@'%';
+GRANT SELECT ON food_db.products_vitamins TO 'db_reader'@'%';
+GRANT SELECT ON food_db.products_minerals TO 'db_reader'@'%';
+
 GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products TO 'db_loader'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products_core TO 'db_loader'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products_allergens TO 'db_loader'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products_macros TO 'db_loader'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products_vitamins TO 'db_loader'@'%';
+GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON food_db.products_minerals TO 'db_loader'@'%';
 FLUSH PRIVILEGES;
 
 -- Step C: The Loader user would then run this MySQL command to import: