Edgedb Property Kullanımı (Required, Optional)

2023-04-11

EdgeDB, nesne yönelimli programlama ve veri modelleme gibi kavramları PostgreSQL veritabanı sistemiyle birleştiren bir veritabanı yönetim sistemi olarak öne çıkıyor. EdgeDB, nesne modelleri oluşturmak için bir veri tanımlama dili kullanır ve bu modellerin özelliklerinin belirtilmesi gerekiyor. Bu özellikler, zorunlu veya isteğe bağlı olabilir. Bu makalede, EdgeDB’deki zorunlu ve isteğe bağlı özelliklerin ne olduğunu ve nasıl kullanıldığını açıklayacağız.

Zorunlu özellikler, bir nesnenin oluşturulması için gerekli olan özelliklerdir. Bir zorunlu özellik olmadan bir nesne oluşturulamaz. Örneğin, bir kullanıcının adı veya e-posta adresi bir kullanıcının oluşturulması için gerekli zorunlu özelliklerdir.

Zorunlu özelliklerin tanımlanması, özelliklerin tanımlandığı yerde yapılır. Bu özellikler, sözdizimi olarak required anahtar kelimesi ile tanımlanır. Örneğin, bir kullanıcının adı zorunlu bir özellik olarak tanımlanabilir:

type User {
    required property name -> str;
}

Bu tanımlama, bir kullanıcının adının str veri tipinde zorunlu bir özellik olduğunu belirtir.

İsteğe bağlı özellikler, bir nesne için isteğe bağlı olan özelliklerdir. Bu özellikler, bir nesnenin oluşturulmasında veya sorgulanmasında belirtilmeyebilir. Örneğin, bir kullanıcının yaş veya telefon numarası gibi isteğe bağlı özellikleri olabilir.

İsteğe bağlı özelliklerin tanımlanması, özelliklerin tanımlandığı yerde yapılır ve sözdizimi olarak optional anahtar kelimesi kullanılır. Örneğin, bir kullanıcının yaşının isteğe bağlı bir özellik olarak tanımlanması şöyle görünebilir:

type User {
    required property name -> str;
    optional property age -> int16;
}

Bu tanımlama, bir kullanıcının yaşının int16 veri tipinde isteğe bağlı bir özellik olduğunu belirtir.

Zorunlu ve isteğe bağlı özellikler, EdgeDB’de nesne oluşturulması ve sorgulanması sırasında kullanılır. Bir nesne oluşturulurken, zorunlu özelliklerin tümü belirtilmelidir. İsteğe bağlı özelliklerin belirtilmesi isteğe bağlıdır. Örneğin, bir kullanıcı nesnesi oluşturulduğunda, kullanıcının adı zorunlu bir özellik olduğu için belirtilmelidir. Yaş ise isteğe bağlı bir özellik olduğu için belirtilmeyebilir:

INSERT User {
    name := 'Ali Veli',
    age := 35,
}

Bir nesne sorgulanırken, zorunlu özellikler her zaman mevcut olmalıdır. İsteğe bağlı özelliklerin sorgulama sırasında belirtilmesi isteğe bağlıdır. Örneğin, bir kullanıcının adını sorgulamak için aşağıdaki gibi bir sorgu yapılabilir:

SELECT User.filter(name = 'Ali Veli').name;

Yaş gibi isteğe bağlı özelliklerin sorgulanması, sorgu sırasında belirtilmesiyle yapılabilir:

SELECT User.filter(name = 'Ali Veli').age;

EdgeDB’deki zorunlu ve isteğe bağlı özellikler, nesne modellemesi yaparken oldukça önemlidir. Zorunlu özellikler, bir nesnenin oluşturulması için gerekli olan özellikleri tanımlamak için kullanılırken, isteğe bağlı özellikler bir nesne için opsiyonel olan özellikleri tanımlamak için kullanılır. Bu özellikler, nesnelerin oluşturulması ve sorgulanması sırasında kullanılır ve EdgeDB’de nesne modellemesi yaparken bilinmesi gereken önemli kavramlardan biridir.



Bu gibi daha fazla gönderi...

Edgedb Computed Links

2023-04-12 | #edgedb #edgedb-links

Computed Links, iki nesne arasındaki ilişkileri tanımlamak için kullanılan bir yapıdır. Bu bağlantılar, ilişkilendirilmiş nesnelerin birbirine olan ilişkisini hesaplamak için tanımlanmış bir sorgu veya fonksiyon kullanarak oluşturulur. Bu yapı, veritabanında tutulan verilerin tutarlılığını sağlamak için oldukça yararlıdır. Computed Links, veriler arasında sıkı bir şekilde bağlantı kurmanın yanı sıra, veritabanında saklanan verilerin değiştirilmesi veya güncellenmesi durumunda bağlantıların otomatik olarak güncellenmesini sağlar. Ayrıca, sorgulama ve raporlama işlemlerini kolaylaştırmak için de kullanılabilir. Örneğin, bir Computed Link aracılığıyla iki nesne arasındaki ilişkiyi hesaplayarak, sorgulama işlemini daha verimli hale getirebilirsiniz.

Devamı 


Edgedb İlişkiler

2023-04-12 | #edgedb #edgedb-links #edgedb-multi-link

Edgedb’de iki tablo arasında ilişki kurmak için link anahtar kelimesi kullanılır. Linkler, bir objenin başka bir objeyle ilişkilendirilmesine izin verir. Örneğin, bir User tablosu ve bir Article tablosu varsa, Article tablosundaki her bir Article, bir Userya atfedilebilir. Bu durumda, User ve Article tabloları arasında bir ilişki kurabiliriz. İlk olarak, User tablosunda bir id özelliği tanımlarız. Bu özellik, kullanıcının benzersiz bir kimliğini temsil eder. type User { required property id -> uuid; property name -> str; } Ardından, Article tablosunda bir author özelliği tanımlarız.

Devamı 


Edgedb Exclusive Constraint

2023-04-12 | #edgedb #edgedb-constraints

Edgedb’de exclusive constraint (özel kısıtlama) terimi, belirli bir özelliğin benzersiz olmasını veya belirli bir aralıkta olmasını sağlayan bir kısıtlama türünü ifade eder. Örneğin, bir User objesinde email özelliğinin benzersiz olmasını sağlayan bir özel kısıtlama oluşturabilirsiniz. Böylece, her bir User’ın sadece bir kez kaydedilmesini sağlayabilirsiniz. Aşağıdaki örnekte, email özelliğinde benzersizlik sağlayan bir özel kısıtlama tanımlıyoruz: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Devamı 