fix(DataBase): Fix Data Base struct
-- Таблица продуктов
CREATE TABLE Product (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
image_path TEXT
);
-- Таблица значений параметров
CREATE TABLE Val (
id INTEGER PRIMARY KEY AUTOINCREMENT,
val TEXT NOT NULL
);
-- Таблица параметров продуктов
CREATE TABLE Param (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
val TEXT NOT NULL
);
-- Таблица параметров категорий
CREATE TABLE CParams (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
val_id INTEGER,
FOREIGN KEY (val_id) REFERENCES Val (id)
);
-- Таблица категорий
CREATE TABLE 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)
);
-- Таблица связи продуктов и параметров (многие-ко-многим)
CREATE TABLE Product_Param (
product_id INTEGER,
param_id INTEGER,
PRIMARY KEY (product_id, param_id),
FOREIGN KEY (product_id) REFERENCES Product (id),
FOREIGN KEY (param_id) REFERENCES Param (id)
);
This commit is contained in:
1 parent
1313d4a17b
commit
f82c692a2b
1 file changed
+52
-13
+52
-13
@@ -1,28 +1,67 @@
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
import json
|
|
||||||
from loguru import logger as log
|
from loguru import logger as log
|
||||||
|
|
||||||
def init_database():
|
def init_database():
|
||||||
conn = sqlite3.connect('products.db')
|
conn = sqlite3.connect('products.db')
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
cursor.execute('''
|
# Создаем таблицу Product
|
||||||
CREATE TABLE IF NOT EXISTS Category (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
name TEXT NOT NULL UNIQUE,
|
|
||||||
atributes TEXT NOT NULL
|
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE IF NOT EXISTS Product (
|
CREATE TABLE IF NOT EXISTS Product (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
category INTEGER NOT NULL,
|
image_path TEXT
|
||||||
desc TEXT,
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# Создаем таблицу Param
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS Param (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
val TEXT NOT NULL
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# Создаем таблицу Val
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS Val (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
val TEXT NOT NULL
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# Создаем таблицу 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)
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# Создаем таблицу Category
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS Category (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
prod_id INTEGER,
|
||||||
image_path TEXT,
|
image_path TEXT,
|
||||||
size TEXT,
|
c_params_id INTEGER,
|
||||||
FOREIGN KEY (category) REFERENCES Category (id)
|
FOREIGN KEY (prod_id) REFERENCES Product (id),
|
||||||
|
FOREIGN KEY (c_params_id) REFERENCES CParams (id)
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
# Создаем таблицу Product_Param (связь многие-ко-многим)
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS Product_Param (
|
||||||
|
product_id INTEGER,
|
||||||
|
param_id INTEGER,
|
||||||
|
PRIMARY KEY (product_id, param_id),
|
||||||
|
FOREIGN KEY (product_id) REFERENCES Product (id),
|
||||||
|
FOREIGN KEY (param_id) REFERENCES Param (id)
|
||||||
)
|
)
|
||||||
''')
|
''')
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user