Оба подхода определенно будут работать, и это действительно в некоторой степени зависит от ваших личных предпочтений и API, который вы хотите иметь при работе с данными.
При втором подходе, который вы обрисовали в общих чертах, Prisma действительно создаст таблицыдля CustomerProfile
, ProductEngagement
и всех других типов (как правило, Prisma отображает все определения типов из вашей модели данных в их собственные таблицы).Итак, как указал @ rick-james, в JOIN
s могут быть издержки, которые необходимо выполнить при извлечении данных.
Каков правильный способ мышления при проектировании здесь?В настоящее время я руководствуюсь своими ER-диаграммами.
Это, как правило, правильный подход, поскольку модель данных Prisma в конечном итоге сопоставляется с базой данных.В этом смысле было бы неплохо думать об этом в терминах ER-диаграммы.
Также обратите внимание, что Prisma вскоре будет поддерживать встроенные типы , которые позволяют определять тип в Prisma.модель данных, которая не получает свою собственную таблицу, но где данные скорее хранятся в столбце JSON внутри таблицы не встроенного типа.В настоящее время это уже поддерживается при использовании Prisma с MongoDB, но еще не с SQL.Вы можете узнать больше об этой теме в запросе этой функции .