I am working on task manager website(a to-do list) but having difficult time on creating my database tables.

a school will be using this site so there will be thousands of people using this site. for this reason database must well organized and should easily retrieve the data.

in this website students will register and create an account.

they will be able to create/delete unlimited categories.

under these categories they can create/delete unlimited tasks.

users can also create/delete unlimited tags. Tasks will be assigned to these tags.

here is what i got, let me know what do u think?

user table
unique_id
name
email
-----------------
Category Table
category_uniqe_id
unique_id (foreign key)(where I contact to user table)
category_title

task list table
task_unique_id
category_uniqe_id (foreign key)
task_title


tag table
tag_unique_id
task_uniqe_id (foreign key)
tag_title

if i use above schema, there might be millions of row under every table but user table, and that will cause large database…

what is the best way to set this up?

Thanks in advance.