Prisma ORM Relations ve İlişkiler Rehberi
Prisma ORM Relations ve İlişkiler Rehberi
Prisma ORM, modern web uygulamalarında veritabanı yönetimini oldukça kolaylaştıran popüler bir ORM (Object Relational Mapping) aracıdır. Prisma'nın en güçlü özelliklerinden biri, ilişkili verilerin kolayca modellenip yönetilmesini sağlayan "relations" yani ilişkiler kavramıdır. "Prisma ORM relations ve ilişkiler" konusunda doğru modeli oluşturmak, verilerinizi hem güvenli hem esnek bir şekilde yönetmenizi sağlar. Bu makalede, Prisma'da farklı ilişki türleri, ilişki tanımlama yöntemleri ve örnek kodlarla kullanımı detaylıca ele alacağız.
Prisma ORM Relations Türleri
Prisma ORM relations ile en yaygın üç ilişki tipi üzerinde rahatça çalışabilirsiniz. Bunlar:
- One-to-One (Birebir): İki tablo arasında her kaydın yalnızca bir eşleşen kaydı vardır.
- One-to-Many (Bire-Çok): Bir kaydın birden fazla bağlı kaydı olabilir.
- Many-to-Many (Çoktan-Çoka): Her iki tabloda da birden fazla kayıt karşılıklı olarak birbirleriyle ilişkilendirilebilir.
Şimdi bu Prisma ORM relations türlerini birer örnekle inceleyelim.
One-to-One (Birebir) İlişki
model User {
id Int @id @default(autoincrement())
email String @unique
profile Profile?
}
model Profile {
id Int @id @default(autoincrement())
bio String
user User @relation(fields: [userId], references: [id])
userId Int @unique
}
Yukarıda, her kullanıcının bir profilinin olduğu klasik bir Prisma ORM relations tanımı görülüyor.
One-to-Many (Bire-Çok) İlişki
model Post {
id Int @id @default(autoincrement())
title String
content String
user User @relation(fields: [userId], references: [id])
userId Int
}
model User {
id Int @id @default(autoincrement())
name String
posts Post[]
}
Burada bir kullanıcı birden fazla gönderiye (post) sahip olabilir; ilişkideki Post[] dizisi bunun göstergesidir.
Many-to-Many (Çoktan-Çoka) İlişki
model Student {
id Int @id @default(autoincrement())
name String
courses Course[]
}
model Course {
id Int @id @default(autoincrement())
title String
students Student[]
}
Bu many-to-many Prisma ORM relations örneğinde, hem bir öğrenci birden fazla kursa katılabilir hem de bir kursa birden fazla öğrenci kayıt olabilir.
Prisma ORM İlişkilerinin Kullanımı
İlişkili Verileri Sorgulama
Prisma ORM relations kullanırken ilişkili kayıtları çekmek oldukça pratiktir. Örnekte, kullanıcıları ve onların gönderilerini şu şekilde çekebilirsiniz:
const usersWithPosts = await prisma.user.findMany({
include: {
posts: true,
},
});
console.log(usersWithPosts);
Bu sorgu ile her kullanıcı nesnesi ile birlikte ilişkili gönderiler de listelenir. Aynı mantık diğer ilişkiler için de geçerlidir.
Sonuç
Prisma ORM relations ve ilişkiler kavramı, veri modelinizi esnek ve güvenli tutmanın anahtarıdır. Doğru kurulan ilişkiler sayesinde veritabanında gezinme ve karmaşık sorguları yazma süreçleriniz hayli sadeleşir. Prisma ORM kullanarak gerek birebir, gerek bire-çok, gerekse çoktan-çoka ilişkileri kolayca tanımlayabilir, veri bütünlüğünü koruyabilirsiniz. Prisma ORM relations ve ilişkiler hakkındaki bu rehber ile daha verimli projelere imza atabilirsiniz.

Yorum Gönder