Модель:
model UserAccount {
id Int @id @unique @default(autoincrement()) @map("id")
roles Role[] @default([USER]) @map("roles")
invitedBy Int? @map("invited_by")
invitationLinks String[] @map("invitation_links")
actions UserAction[]
bookings Booking[]
notifications Notification[]
createdProducts Product[] @relation("user_created_products")
isBlocked Boolean @map("is_blocked")
blockedBy Int @map("blocked_by")
blockedAt DateTime @map("blocked_at") @db.Timestamptz()
blockingReason String @map("blocking_reason") @db.VarChar(128)
isDeleted Boolean @default(false) @map("is_deleted")
deletedBy Int @map("deleted_by")
deletedAt DateTime? @map("deleted_at") @db.Timestamptz()
deletionReason String? @map("deletion_reason") @db.VarChar(128)
createdBy Int? @map("created_by")
createdAt DateTime @map("created_at") @db.Timestamptz()
updatedBy Int? @map("updated_by")
updatedAt DateTime? @map("updated_at") @db.Timestamptz()
tablesAuditLogs TableAuditLog[]
@@map("user_accounts")
}
Мне хотелось бы иметь возможность в одном запросе получить профиль пользователя, который создал запись, НО:
1. Если кол-во связей увеличивается, у меня начинает кипеть голова.
2. Я не понимаю как группировать поля, например: есть связи технические, а есть основные - например bookings и если бы я решил отделить все связи от основных полей, не разделяя их, стало бы чуть полегче, но потеряется логика.
Я хочу поделить схемы на интуитивно понятные блоки, чтобы не тратить время на поиски и последующие воспоминания (спустя время).
Визуальная библиотека подобных схем на нуле, поэтому выбирать или хотя-бы вдохновиться не чем.