Нормально ли хранить JSON в базе данных?
Если потребуется делать join с одним из параметров внутри JSON, то это и будет показывать, что в данном варианте так делать не нужно.
Если ни при каких обстоятельствах не возникнет ситуации, что потребуется разбирать JSON, чтобы связать данные таблиц, то храните JSON.
Был такой нудный дедушка Эдгар Кодд. Он как-то из соображений своей нудности взял и объявил что только он знает как правильно делать реляционные базы.

Вобщем его первое правило касается атомарности данных которые лежат в ячейках таблицы. И если в рамках решаемой вами задачи JSON атомарен - то все в порядке и никакой проблемы нету. Храните себе JSON. 

Но если внутри JSON будет поле которое способно изменяться независимо от остальной части документа - то старичок Эдгар будет на вас сильно зол. Может даже вас побить.

В наше время уже созданы специализированне БД (Mongo, CouchDb) которые плевали на нормализацию. Они расширяют и ослабляют понятия нормализации. Not-Only-SQL говорят про себя.