Edgedb Enum Kavramı

[en] Read in English

2023-04-11

Edgedb, kullanıcıların enumlar (sabitleri) tanımlayarak veri modellemelerinde kullanmalarına izin verir. Enumlar, verilerin tutulmasında kullandığımız veri tiplerinden biridir. Bir enum, belirli bir sabit değer kümesi içeren bir veri yapısıdır. Bu sabitler, veri modelindeki bir alanın değerlerini sınırlamak için kullanılabilir. Bu, hatalı veya geçersiz verilerin modelde depolanmasını önlemeye yardımcı olabilir ve uygulama geliştiricilerine daha kesin ve güvenli bir veri modelleme deneyimi sunabilir.

Edgedb’de, enumlar, özel bir veri tipi olarak tanımlanır ve bir enum tanımlamak için aşağıdaki sözdizimi kullanılır:

enum <enum_name> {
    <enum_value_1> := <value_1>,
    <enum_value_2> := <value_2>,
    ...
}

Bu örnekte, <enum_name> öğesi, tanımlanacak enumun adını belirtir. <enum_value_1> ve <enum_value_2> öğeleri, enum sabitlerinin adlarını belirtir ve := sembolü ile onların değerleri belirtilir.

Aşağıdaki örnek, user_role adlı bir enum tanımlar ve bu enum, admin, editor ve viewer olmak üzere üç farklı sabit değeri içerir:

enum user_role {
    admin := 'admin',
    editor := 'editor',
    viewer := 'viewer'
}

Enum sabitleri, bir alanın varsayılan değeri olarak kullanılabilir ve bu alan yalnızca enum sabitlerinin değerlerini alabilir. Aşağıdaki örnek, User adlı bir nesne tipi tanımlar ve bu nesne tipi, role adlı bir alan içerir. Bu alan, user_role enumundan bir sabit değer alır:

type User {
    required property name -> str;
    required property email -> str;
    property role -> user_role;
}

Bu örnek, User nesne tipinin role alanının, sadece user_role enumunun sabitleri olan admin, editor veya viewer değerlerini alabileceğini belirtir.

Enumlar, veri modelleme işlemlerindeki tutarlılığı sağlamak için çok kullanışlı bir araçtır. edgedb, enumları desteklemesi sayesinde, uygulama geliştiricileri daha kesin ve güvenli bir veri modelleme deneyimi sunarak, hatalı verilerin depolanmasını önleyebilir ve verilerin daha kolay anlaşılmasını sağlayabilir.



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ı 