0Pricing
Android Academy · Ders

Sorgular ve İlişkiler

Verileri sorgulayın ve varlıklar arasında ilişki kurun.

Sorgular ve İlişkiler, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.

Tek Bir Tablonun Ötesi

Gerçek uygulamalarda ilişkili veriler bulunur: bir kullanıcının birçok gönderisi, bir siparişin birçok ürünü olabilir. Room bunları yabancı anahtarlar ve @Relation ek açıklamasıyla modeller.

Parametreli Sorgular

Bağımsız değişkenleri iki nokta üst üste ön ekiyle bir @Query içine aktarın.

@Query("SELECT * FROM users WHERE name LIKE :search")
suspend fun search(search: String): List<User>

Toplu Değerleri Döndürme

Sorgular, sayılar gibi skaler değerler döndürebilir.

@Query("SELECT COUNT(*) FROM users")
suspend fun count(): Int

Yabancı Anahtar Tanımlama

Bir alt varlık, @ForeignKey ile üst varlığına başvurur. Bu, veritabanı düzeyinde başvuru bütünlüğünü zorunlu kılar.

@Entity(
    foreignKeys = [ForeignKey(
        entity = User::class,
        parentColumns = ["id"],
        childColumns = ["userId"]
    )]
)
data class Post(
    @PrimaryKey val id: Int,
    val userId: Int,
    val title: String
)

Yabancı Anahtarları Dizine Ekleme

Room, sorgu performansı için yabancı anahtar sütunlarına dizin eklenmesini önerir. Bir @Index ekleyin.

@Entity(
    indices = [Index("userId")]
)
data class Post(/* ... */ val userId: Int)

onDelete Davranışı

Bir üst varlık silindiğinde alt varlıklara ne olacağına karar verin; örneğin CASCADE ile onları da silebilirsiniz.

ForeignKey(
    entity = User::class,
    parentColumns = ["id"],
    childColumns = ["userId"],
    onDelete = ForeignKey.CASCADE
)

Bire Çok İlişkiyi Modelleme

@Embedded ve @Relation kullanarak bir üst varlığı alt varlıklarıyla birleştiren bir sınıf oluşturun.

data class UserWithPosts(
    @Embedded val user: User,
    @Relation(
        parentColumn = "id",
        entityColumn = "userId"
    )
    val posts: List<Post>
)

İlişkiyi Sorgulama

Bir DAO'dan birleştirilmiş sınıfı döndürün. Room ek sorguyu çalıştırır ve nesneleri bir araya getirir.

@Transaction
@Query("SELECT * FROM users")
suspend fun getUsersWithPosts(): List<UserWithPosts>

@Transaction Neden Burada

Room iki sorgu yürüttüğü için (önce üst öğeler, ardından alt öğeler), yöntemi @Transaction ile sarmalamak, araya yazma işlemleri girmeden tutarlı bir anlık görüntü alınmasını sağlar.

Bir Birleştirme Tablosuyla Çoktan Çoğa İlişki

Çoktan çoğa ilişkilerde (öğrenciler ve kurslar), birleştirme tablosu ile @Relation ek açıklamasının associateBy parametresini kullanın.

@Relation(
    parentColumn = "studentId",
    entityColumn = "courseId",
    associateBy = Junction(Enrollment::class)
)
val courses: List<Course>

İlişkilerin Özeti

  • @ForeignKey, bütünlüğü ve basamaklı işlem kurallarını zorunlu kılar.
  • @Relation + @Embedded, ilişkili nesneleri bir araya getirir.
  • @Transaction, birden çok sorgudan yapılan okumaları tutarlı tutar.

Hızlı Kontrol

İlişkiler konusundaki anlayışınızı test edin.

Özet

Şunları öğrendiniz:

  • Sorguları :name ile parametreleştirmeyi ve toplu sonuçlar döndürmeyi.
  • @ForeignKey ek açıklamasının onDelete kurallarıyla bütünlüğü zorunlu kılmasını.
  • @Relation + @Embedded ile ilişkili nesneler oluşturmayı ve okumaları @Transaction ile sarmalamayı.

Sıkça Sorulan Sorular

“Sorgular ve İlişkiler” dersi ücretsiz mi?

Evet — “Sorgular ve İlişkiler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.

“Sorgular ve İlişkiler” dersinde ne öğreneceğim?

Verileri sorgulayın ve varlıklar arasında ilişki kurun. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Sorgular ve İlişkiler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Varlıklar ve DAO'lar
  2. Room Veritabanı Sınıfı
  3. Sorgular ve İlişkiler
  4. Flow ile Verileri Gözlemleme
← Android Academy Sayfasına Dön