Но есть "проблема". При добавлении новой фразы для героя, она всегда будет в конце таблицы т.к. это новая запись.
Т.е. при дополнении таблицы фразами - для 1 героя, для второго, придумали новую фразу для 1 героя, они будут идти в разнобой. Это визуально не удобно для отслеживания, понимания, не красиво.
Это не проблема. При выборке фраз ты можешь спокойно указать нужный порядок.
База данных - это не эксель, и даже в экселе это не было бы проблемой благодаря сортировкам.
Первое что приходит на ум - Одна таблица для всех героев с 3 полями
id - автоинкремент
имя героя
фраза героя
Лучше для героев завести отдельную таблицу, а в этой таблице держать только id героя.
Вариант 2. Для каждого героя своя таблица. Таблица Hero1 Hero2 и т.д.
id - автоинкремент
фраза героя
И далее, делать выборку всех записей из таблицы т.к. в ней фразы для нужного героя.
Просто, интуитивно понятно, все фразы идут "друг за другом", но много таблиц.
Из такой базы нереально будет программно вытаскивать данные.
Тебе придётся для каждого героя свой запрос заводить и кучу запросов у которых различается только имя таблицы.
Такие запросы даже шаблонизировать не получиться, тк подготовленные запросы в бд только с аргументами работают, а имя таблицы аргументом не является.
Тебе должно быть пофиг, как эти данные структурируются с точки зрения человека.
Структурируй с точки зрения запросов и программы, которая будет с этими данными работать.