From ce5f84beba27d7fef73b8ee69a498482fd8597db Mon Sep 17 00:00:00 2001 From: Kirill Date: Sun, 23 Nov 2025 22:42:23 +0300 Subject: [PATCH] fixup! fix(DataBase): Fix Data Base struct --- db/InitializeDB.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/db/InitializeDB.py b/db/InitializeDB.py index 352c680..5e28c26 100644 --- a/db/InitializeDB.py +++ b/db/InitializeDB.py @@ -5,7 +5,6 @@ def init_database(): conn = sqlite3.connect('products.db') cursor = conn.cursor() - # Создаем таблицу Product cursor.execute(''' CREATE TABLE IF NOT EXISTS Product ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -14,7 +13,6 @@ def init_database(): ) ''') - # Создаем таблицу Param cursor.execute(''' CREATE TABLE IF NOT EXISTS Param ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -23,7 +21,6 @@ def init_database(): ) ''') - # Создаем таблицу Val cursor.execute(''' CREATE TABLE IF NOT EXISTS Val ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -31,30 +28,21 @@ def init_database(): ) ''') - # Создаем таблицу CParams cursor.execute(''' CREATE TABLE IF NOT EXISTS CParams ( id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - val_id INTEGER, - FOREIGN KEY (val_id) REFERENCES Val (id) + name TEXT NOT NULL ) ''') - # Создаем таблицу Category cursor.execute(''' CREATE TABLE IF NOT EXISTS Category ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, - prod_id INTEGER, - image_path TEXT, - c_params_id INTEGER, - FOREIGN KEY (prod_id) REFERENCES Product (id), - FOREIGN KEY (c_params_id) REFERENCES CParams (id) + image_path TEXT ) ''') - # Создаем таблицу Product_Param (связь многие-ко-многим) cursor.execute(''' CREATE TABLE IF NOT EXISTS Product_Param ( product_id INTEGER, @@ -65,6 +53,26 @@ def init_database(): ) ''') + cursor.execute(''' + CREATE TABLE IF NOT EXISTS Category_CParams ( + category_id INTEGER, + cparams_id INTEGER, + PRIMARY KEY (category_id, cparams_id), + FOREIGN KEY (category_id) REFERENCES Category (id), + FOREIGN KEY (cparams_id) REFERENCES CParams (id) + ) + ''') + + cursor.execute(''' + CREATE TABLE IF NOT EXISTS CParams_Val ( + cparams_id INTEGER, + val_id INTEGER, + PRIMARY KEY (cparams_id, val_id), + FOREIGN KEY (cparams_id) REFERENCES CParams (id), + FOREIGN KEY (val_id) REFERENCES Val (id) + ) + ''') + conn.commit() conn.close() log.info("База данных успешно инициализирована!")