Как уместить все эти данные в одной таблице? Или нужно сделать главную таблицу со всеми пользователями и для каждого выделить свою отдельную таблицу, по которой уже искать данные выбранного пользователя?
Одна таблица для пользователей, а другая для задач.
Между ними - Foreign Key, который сопоставляет задачи и пользователей.
10к - это мало, так что даже не заметишь просадок.
Чтобы выборки делать быстрее - можно добавить индексы.
VARCHAR-теги(категории)
Категории имеет смысл вынести в отдельную таблицу и пусть будет связь Many-Many
TINYINT-срочность
А вот в постгресе можно было бы сделать ENUM :)
BOOLEAN-статус
А что у задачи может быть только два статуса? Для расширяемости стоит сделать это тоже енамом (строкой или числом)
VARCHAR-список шагов
Шаги тоже стоит вынести в отдельную таблицу и Связывать их с задачей
SMALLINT-прогресс выполнения
Типа текущий шаг?