create table Users ( id int auto_increment primary key, username varchar(50) not null, email varchar(255) not null, password varchar(255) not null, created_at datetime not null, last_login datetime null, constraint email unique (email), constraint username unique (username) ); create table Notes ( uuid binary(16) not null primary key, title varchar(50) not null, user_id int not null, updated_at datetime null, constraint Notes_fk_user foreign key (user_id) references Users (id) on delete cascade ); create table Chapters ( id int auto_increment primary key, number int not null, title varchar(50) not null, content text not null, note_uuid binary(16) not null, constraint Chapters_fk_note foreign key (note_uuid) references Notes (uuid) on delete cascade ); create index note_uuid on Chapters (note_uuid); create index user_id on Notes (user_id); create table Tags ( id int auto_increment primary key, name varchar(50) not null, note_uuid binary(16) not null, constraint Tags_fk_note foreign key (note_uuid) references Notes (uuid) on delete cascade ); create index note_uuid on Tags (note_uuid);