added indexing

This commit is contained in:
Yapollon 2024-01-16 13:35:00 +01:00
parent 53201c95ee
commit 84d2020b18
8 changed files with 23 additions and 8 deletions

BIN
ER.dia

Binary file not shown.

BIN
ER.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 41 KiB

BIN
UML.dia

Binary file not shown.

BIN
UML.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -41,10 +41,10 @@ def get_user_by_email(email: str):
return user
def create_habit(name: str, user_id: int, times: int, unit: int, note: str | None=None):
def create_habit(name: str, user_id: int, times: int, unit: int, list_index: int, note: str | None=None):
now = datetime.now().isoformat()
query = (f"INSERT INTO habits (user_id, name, note, times, unit, created_at, updated_at) VALUES ('{user_id}', "
f"'{name}', '{note}', '{times}', '{unit}', '{now}', '{now}');")
query = (f"INSERT INTO habits (user_id, name, note, times, unit, list_index, created_at, updated_at) VALUES ('{user_id}', "
f"'{name}', '{note}', '{times}', '{unit}', '{list_index}', '{now}', '{now}');")
conn = con3()
cursor = conn.cursor()
cursor.execute(query)

View File

@ -0,0 +1 @@
DROP TABLE habits;

View File

@ -0,0 +1,13 @@
CREATE TABLE IF NOT EXISTS habits
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
name TEXT NOT NULL,
note TEXT,
times INTEGER NOT NULL,
unit INTEGER,
list_index INTEGER NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
);

View File

@ -15,22 +15,23 @@ class Habit:
note: str
times: int
unit: int
list_index: int
@staticmethod
def create(user_id: int, name: str, times: int, unit: int, note: str | None=None):
id = create_habit(user_id, name, note, times, unit)
return Habit(id, user_id, name, note, times, unit)
def create(user_id: int, name: str, times: int, list_index: int, note: str | None=None, unit: int | None=1):
id = create_habit(user_id, name, note, times, unit, list_index)
return Habit(id, user_id, name, note, times, unit, list_index)
@staticmethod
def get(id: int):
habit = get_habit(id)
return Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5]) if habit else None
return Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5], habit[6]) if habit else None
@staticmethod
def get_all(user_id):
raw_habits = get_habits(user_id)
habits = []
for habit in raw_habits:
habit = Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5])
habit = Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5], habit[6])
habits.append(habit)
return habits if habits else None