Вместо того, чтобы проектировать вашу базу данных иначе, я бы посоветовал сосредоточиться на коде на уровне, где у вас есть метод для возврата некоторого объекта, который нужен вызывающему коду. Убедитесь, что все записи проходят через один и тот же слой, так как в NoSQL вам может потребоваться обновить индекс / представление при записи, а не делать это автоматически в базе данных.
Если необходимо, таблица, из которой этот слой читает, может быть полна json-объектов, хотя я бы не рекомендовал это делать изначально - структура, скорее всего, не совсем будет соответствовать любому решению NoSQL, с которым вы столкнетесь, и вы найдете гораздо больше информация о переходе от стандартного дизайна SQL, чем от пользовательской системы. Кроме того, если ваша платформа NoSQL может выполнять поиск в полях json, например, в SQL, можно искать в столбцах, любые усилия по поиску / фильтрации этих BLOB-объектов будут напрасными.
Точно так же написание представлений в коде - не лучший подход - он не будет таким же эффективным, как прямой запрос, и хотя платформы NoSQL обрабатывают такие вещи совершенно по-другому, в платформе обычно есть какая-то особенность, которой вы можете воспользоваться из.