С одной стороны да, сложностей в приведении к какой-нибудь нормальной форме почти нет. Всего то типов связи - один к одному, один ко многим и многие ко многим через промежуточную таблицу. Выбрать почти всегда не сложно.
А вот когда сложности с производительностью - начинаются извращения с сознательной денормализацией и поддержанием актуальности в связанных таблицах (остатков, оборотов и детальных движений например). Вот про это и я бы общие подходы почитал. Так как знаю только подход одной желтой фирмы.
У вас ошибка в header('Content-type: json/aplication'); Правильной это Content-Type: application/json
Вообще рекомендую Insomnia. Одну из проблем которую я вижу в Postman это отсутствие выставления автоматических Content-Type. Insomnia же делает это сама в зависимости от типа тела запроса.