Ну, наверное, это не самый удачный приём, хотя он и имеет право на жизнь. Дело в том, что он представляет собой нечто среднее между двумя крайностями - чисто текстовым подходом (медленное позиционирование, но возможность править файл руками) и чисто бинарным подходом (быстрое позиционирование, но отсутствие возможности править руками). Включал бы предложенный метод плюсы от двух крайностей - цены бы ему не было. Но он включает только минусы, так как файл руками не поправишь, но при этом позиционирование не такое быстрое, как у чисто бинарного подхода, и, ко всеми прочему, ещё и нужен какой-то дополнительный файл, постоянно нуждающийся в обновлении.
Для того, чтобы решить, каким подходом лучше всего пользоваться, предлагаю в первую очередь определить нужна ли тебе возможность править файл базы данных руками. Если нужна - то используй чисто текстовый подход. Если не нужна - чисто бинарный. Промежуточные подходы, как показывает практика - от лукавого
P.S. Если что, под чисто бинарным подходом я подразумеваю оперирование данными с помощью
fread/
fwrite.
P.P.S. И если уж совсем о правильных вещах говорить, то для работы с базами данных наиболее правильным выходом будет использование готовых решений, коих в интернете масса (например
SQLite). Но это уже потом, когда накопишь опыт. На данный момент реализуемая задача более, чем соответствует своим целям - натренировать начинающего программиста.