İkincil anahtar kullanmadan veritabanı oluşturma

Ali UMAÇ

Kilopat
Katılım
11 Şubat 2018
Mesajlar
62
Daha fazla  
Cinsiyet
Erkek
Merhaba, uzun süredir SQL ile veritabanları oluşturmaktayım.

Gerek linq gerek veritabanı yedeği tutmakta foreign Key yüzünden birçok hata ile karşılaşıyorum. Örneğin linq sorguda foreign Key yüzünden selectmany tetikleniyor bu yüzden de return süresi uzuyor, ya da yedek alırken başka başka hatalar veriyor. İkincil anahtar kullanmadan veritabanı oluşturan ve kullanan var mı? Denemek için pek vaktim olmuyor projelerden dolayı.
 
Son düzenleyen: Moderatör:
İlişkisel olmayan veritabanlarından mı bahsediyoruz? (NoSql)

Projenin detayını bilmediğimden ne yapmak istediğini tam olarak bilmemekle birlikte, performansı arttırdığını söyleyebilirim. İlişkisel şemaların yoksa kullanabilirsin.
 
İlişkisel olmayan veritabanlarından mı bahsediyoruz? (NoSql)

Projenin detayını bilmediğimden ne yapmak istediğini tam olarak bilmemekle birlikte, performansı arttırdığını söyleyebilirim. İlişkisel şemaların yoksa kullanabilirsin.
var list = (from userphotosm in db.userPhotos
where staff.staffID == userphotosm.photoUploaderID
join userm in db.pixiUser on userphotosm.userID equals userm.userID
join basketm in db.pixiUserBasket on userm.userID equals basketm.pixiUserID
into ifnul
from basketmNotNull in ifnul.DefaultIfEmpty()
join prod in db.basketProduct on basketmNotNull.pixiUserBasketID equals prod.userBasketID into checkProdNull
from prodm in checkProdNull.DefaultIfEmpty()
orderby userphotosm.photoUploadDate descending
select new { userphotosm, userm, basketmNotNull, prodm }

).ToList();


Örnek bir sorgu. Bu sorgudan daha karışık sorgular da oluyor ve içerisinde nerdesin hiç selectmany(fk) kullanmıyorum. Öğrendiğim şekilde bunca sene devam ettirdim fakat artık fk oldukça canımı sıkıyor, yönetimi ve veri tutarlığını kolaylaştırıyor diye kullandım bunca zaman
 
var list = (from userphotosm in db.userPhotos
where staff.staffID == userphotosm.photoUploaderID
join userm in db.pixiUser on userphotosm.userID equals userm.userID
join basketm in db.pixiUserBasket on userm.userID equals basketm.pixiUserID
into ifnul
from basketmNotNull in ifnul.DefaultIfEmpty()
join prod in db.basketProduct on basketmNotNull.pixiUserBasketID equals prod.userBasketID into checkProdNull
from prodm in checkProdNull.DefaultIfEmpty()
orderby userphotosm.photoUploadDate descending
select new { userphotosm, userm, basketmNotNull, prodm }

).ToList();


Örnek bir sorgu. Bu sorgudan daha karışık sorgular da oluyor ve içerisinde nerdesin hiç selectmany(fk) kullanmıyorum. Öğrendiğim şekilde bunca sene devam ettirdim fakat artık fk oldukça canımı sıkıyor, yönetimi ve veri tutarlığını kolaylaştırıyor diye kullandım bunca zaman

Farklı tablolar arası bağımlılıkların olduğundan NoSql artık bir seçenek değil. Yapına bakıp cevap vermeye çalışayım.
Sorgularına baktığımda birçok tablon olduğunu görüyorum ve join işlemi var. Herhangi bir foreign key kullanmadan tablolar arası join işlemini nasıl yapmayı düşünüyorsun?

Foreign Key'siz tablolar oluşturulabilir mi? Evet, RDMS olmayan veri tabanlarında kullanılabilir fakat senin tabloların birbirine bağlı olmak durumunda sorgular değişmeyecekse. Return süresini kısaltmak için sql sorgularını daha optimize hale getirebilirsin sadece.
 
Son düzenleme:

Geri
Yukarı