Task - таблица с данными заданий.
Block_task - номера задач, которые выводятся в начале тестирования.
После предъявления начального блока заданий порядок вопросов изменяется.
Можно ли оставить структуру БД так? Или можно сделать как-либо по другому?
Я не вижу никакого Block_task.
Вижу только Start_Block. Можно было бы добавить ему свой id, но если каждый Start_Block будет равен Task, не будет несколько блоков с одной и той же Task которые (блоки) может потребоваться обрабатывать по отдельности (удалять), то сойдет и так.