forked from mary3000/telegram-restaurant-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_table.py
78 lines (70 loc) · 2.15 KB
/
create_table.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import sqlite3
conn = sqlite3.connect('Restaurant.db')
c = conn.cursor()
c.execute('''
PRAGMA foreign_keys = ON;
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Заказы(
Заказ INTEGER PRIMARY KEY AUTOINCREMENT,
Столик INTEGER NOT NULL,
Дата DATETIME NOT NULL,
FOREIGN KEY(Столик) REFERENCES Столики(Столик)
);
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Заказы_Блюда(
Заказ INTEGER NOT NULL,
Блюдо INTEGER NOT NULL,
FOREIGN KEY(Заказ) REFERENCES Заказы(Заказ),
FOREIGN KEY(Блюдо) REFERENCES Блюда(Блюдо)
);
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Блюда (
Блюдо INTEGER PRIMARY KEY AUTOINCREMENT,
Название TEXT UNIQUE NOT NULL,
Тип TEXT NOT NULL CHECK (Тип IN ('Горячие закуски', 'Холодные закуски', 'Супы', 'Основные блюда', 'Десерты')),
Ингредиенты TEXT,
Цена INTEGER NOT NULL,
Наличие BOOLEAN NOT NULL,
Скидка INTEGER,
Вегетарианское BOOLEAN NOT NULL
);
''')
conn.commit()
c.execute('''
CREATE INDEX IF NOT EXISTS my_index ON Блюда(Наличие, Тип, Вегетарианское);
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Столики (
Столик INTEGER PRIMARY KEY AUTOINCREMENT,
Тип TEXT NOT NULL CHECK (Тип IN ('VIP', 'У окна', 'В зале')),
Места INTEGER NOT NULL,
Цена INTEGER NOT NULL
);
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Бронирования (
Столик INTEGER NOT NULL,
Дата DATETIME NOT NULL,
FOREIGN KEY(Столик) REFERENCES Столики(Столик),
CONSTRAINT Бронь UNIQUE (Столик, Дата)
);
''')
conn.commit()
c.execute('''
CREATE TABLE IF NOT EXISTS Доходы (
Дата DATETIME NOT NULL,
Доход INTEGER NOT NULL,
Состояние_счета INTEGER NOT NULL
);
''')
conn.commit()
c.close()
conn.close()