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.



More posts like this

Edgedb Computed Links

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

Computed Links is a structure used to define relationships between two objects. These links are created by using a defined query or function to calculate the relationship between associated objects. Computed Links is a structure used to define relationships between two objects. These connections are created by using a defined query or function to calculate the relationship between the associated objects. This structure is very useful for ensuring consistency of the data held in the database.

Continue reading 


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.

Continue reading 


Edgedb Exclusive Constraint

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

The term exclusive constraint in EdgeDB refers to a type of constraint that ensures a specific property is unique or within a certain range. For example, you can create an exclusive constraint in a User object that ensures the email property is unique, thus ensuring that each user is only saved once. In the following example, we are defining an exclusive constraint that ensures uniqueness in the email property: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Continue reading 