import sqlite3 def create_connection(db_file): """Create a database connection to the SQLite database specified by db_file.""" conn = None try: conn = sqlite3.connect(db_file) print(f"Connected to {db_file}") except sqlite3.Error as e: print(e) return conn def create_table(conn, create_table_sql): """Create a table from the create_table_sql statement.""" try: c = conn.cursor() c.execute(create_table_sql) print("Table created successfully") except sqlite3.Error as e: print(e) def delete_table(conn, table_name): """Delete a table specified by table_name.""" try: c = conn.cursor() c.execute(f"DROP TABLE IF EXISTS {table_name}") print(f"Table {table_name} deleted successfully") except sqlite3.Error as e: print(e) def main(): database = "db/shop.db" sql_user_table = """CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT NOT NULL )""" sql_product_table = """CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, price REAL NOT NULL, quantity INTEGER NOT NULL )""" sql_cart_table = """CREATE TABLE IF NOT EXISTS cart ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, product_id INTEGER NOT NULL, quantity INTEGER NOT NULL, FOREIGN KEY (user_id) REFERENCES users (id), FOREIGN KEY (product_id) REFERENCES products (id) )""" conn = create_connection(database) if conn is not None: create_table(conn, sql_user_table) create_table(conn, sql_product_table) create_table(conn, sql_cart_table) else: print("Error! Cannot create the database connection.") if __name__ == '__main__': main()