Предположим схему продавца с более чем 60+ встроенными полями, представляющими отношения 1: 1 и 1: M, и смесь встроенных документов и ссылок на документы, например, «директор», «адреса» и «банковские счета». Мы определенно не храним ничего большого, что превышало бы ограничение в 16 МБ). По сути, у вас есть типичная, лучшая практика, ненормализованная схема No SQL.
Друг предлагает вам разбить ранее встроенные поля, такие как «директор», «адреса» и «банковские счета» в их собственную схему и коллекции. У каждого из них есть добавленное поле sellerId, указывающее на его владельца / продавца.
Аргумент моего друга заключается в том, что благодаря этому наши определения типа GraphQL и схемы ввода становятся проще для определения и управления - учитывая более 60 полей для Продавец? Таким образом, вместо создания единого массивного определения «тип» и «тип ввода» более 60 полей в нашей схеме GraphQL, он теперь может разбивать «директоры», «адреса» и «банковские счета» на их собственные типы и определения входных данных
Q1. Есть ли в этом действительный лог c? Чтобы нормализовать MongoDB для упрощения типа схемы GraphQL и обработки ввода?
Q2. Предполагая, что мы разбили те вышеупомянутые, ранее внедренные поля, которые в большинстве случаев являются устаревшими и редко запрашиваемыми данными, действительно ли это плохо для нормализации в MongoDB?
Да, я знаю, если вы тоже нормализуете много, почему вы не используете RDB / SQL ?? Я предполагаю, потому что знание JavaScript, работа с JSON и понедельник goose ORM, с ограниченными ресурсами, делают его привлекательным хранилищем данных.