Db Hakkında Sorum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    Selam arkadaşlar

    Dbde mikrox paraşüt gibi sistemlerde kullanılan mantık nedir?

    Sormak istediğim şu bu platformlarda bir üyelik oluşturduğumuzda aynı özellikleri sadece bizim girdiğimiz verilere ulaşabiliyoruz, ikinci üyelik açıyoruz yine o ikinci üyeliği ait verileri girip hangi üyelik login olduysan ona göre ona ait verileri gösteriyor

    1 - Şimdi burada her üyeliğe özel bir veri tabanını oluşturulup tablolar kopyalanıp ona göre bağlantı mı yapılıyor?

    2 -Yoksa ortak veritabanı kullanıyor üye kimliğine göre tüm tablolarda o kimliği kaydedip filtreleme mi yapıyor?

    Aynı şekilde bir sistem yapmaya çalışıyorum ancak hangi yöntem daha mantıklı olur? ikinci yöntemde ilerde performans sıkıntısı yaşar mıyız yoksa her üye özel yeni bir veritabanı oluşturup bağlantıyı ona göre özelleştirmek mi mantıklı?

     

    Ya da bunun daha başka bir yolu var mı?


    Abure cubure subure dubure re re re tey tey tey
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    TheAvenqer
    TheAvenqer's avatar
    Kayıt Tarihi: 09/Şubat/2014
    Erkek

    Cevabın genelde 2.

    örnek veriyorum users tablonda kullanıcının id kolonu oluyor

    product tablonda user_id kolonu oluyor diyorsunki user_id'si giriş yapan user'ın id sine eşit olanı getir

    Örnek olsun diye verdim çeşit bol 

     

    Bazı durumlarda sistemi firma firma ayırmak için 1. durum yapılabiliyor örnek veriyorum x firmasi olsun x.site.com ve y firması için y.site.com diye sub domainler açılıp veya ayrı yerlerde tutulup 1. nin kullandığı durumlar olabiliyor sistemleri tamamen birbirinden ayırmak istendiği zaman ama maliyeti yüksek oluyor ihtiyacına göre ama 2. olan daha genel


    Bot ve lisans ihtiyaçlarınız için pm atınız.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    1. bu bana biraz yönetmesi zor geliyor. tablo yapısı değiştiğinde her müşteri için bir db de değiştireceksin. raporlama tarzı işlerin çok zor olacak vs. bunu sql de yapmazdım.

    2. şu ana kadar hep bunu kullandım. web frameworklerin genelde bu tarz şeyler için işi kolaylaştıracak özellikleri oluyor. hiç desktop geliştirmedim orda nasıl bilmiyorum. mesela laravelde "scope" olayı var.

     

    sql değil mongodb kullanıyorsun dersek: 3-4 yıldır canlıda çalışan uygulamamda her kullanıcıya bir database açarak ilerliyorum. ama mongodb de şema yok ve database/tablo yaratmanın teknik bir maliyeti yok. mongoda tuttuğum veri üstünden de herhangi bir raporlama yapmadığım için bunu yapabildim. her kullanıcı kendi database in de çalıştığı için "x müşterinin bana maliyeti ne" tarzı şeyleri çok kolay çıkarıyorum

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    bahsettiğin modelin tam adı Multitenancy yapı diye geçer. bu şekilde aratabilirsin.

    Multitenancy için birden fazla yöntem vardır.

    -hem kod, hem db aynı olabilir.

    -kod aynı, db müşteriye özel olabilir

    -kod ve db müşteriye özel olabilir (aynı kod farklı server'a yüklenir intranet için vb.)

    aşağıdaki resimde genel bir önizleme var bu konuyla ilgili.

    Multitenancy keyworduyle daha detaylı mimarilere ulaşabilirsin.

    bana sorarsan ben completemultitenant mimarisini kullanıyorum hem kod hem db aynı. benim işimi karşılaya model bu çünkü.

     

     

    EDİT: https://www.tahribat.com/forum/aspnet-core-multi-tenant-konusu-hakkinda-250641

    Şu konuda baya detaylı konuşmuştuk sonradan aklıma geldi.

    manglerman tarafından 04/Haz/23 18:50 tarihinde düzenlenmiştir

    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    emirhan-exp
    emirhan-exp's avatar
    Kayıt Tarihi: 10/Ocak/2010
    Erkek

    Hocam saf php den sonra hiçbi mantık yok ya lüzümsuz şeyler bu teenage mutant ninja turtles falan.

     

    Burası özgür bir platform olduğu için fikir beyan ettim

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    esinti
    esinti's avatar
    Kayıt Tarihi: 27/Ağustos/2015
    Erkek

    Örneklemek gerekirse;

    veritabani.dbo.Users

    dbo/schema // müşteri bazı yönetebilirsin.

    ama bu seferde indexlerin artacaktır her müşterinin tablosuna ayrı ayrı index atman gerekecek.

    En mantıklı olan Users tablosunda bir adet CompanyId tutman ve burayı ve bütün tabloları müşteri bazlı yönetmen.

    Örnek sorgu "SELECT * FROM Users WHERE CompanyId=1 İsDeleted=0 AND IsActive=1"

     
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    multi tenant büyük yapı olacaksa tenant per db yada tek db konusuna dikkat et. ikisininde çok fazla pros/cons u var.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EnableTurk
    EnableTurk's avatar
    Kayıt Tarihi: 29/Eylül/2007
    Erkek

    Ağırlıklı olarak kullanılan yöntemler 2 tane. 

    Kullanıcıları gruplarına özel yetki tanımlama

    Kullanıcılara özel yetki tanımlama

    2 şekilde de aktif session'daki kullanıcının grubu veya yetki seviyesi alınır. 

    Erişmek istediği sayfa açılmadan veya gösterilmeden önce yetkisi var mı diye kontrol edilir. Yetkisi var ise kullanıcının veya grubun erişimine izin verilir.

    Tabi bu yalnızca sayfaların gösterilmesi için değil, arkaplanda POST, GET vb. işlemlerin de engellenmesi gerekir. Örn: AJAX ile bir kayıt ekleniyordur. Bu kaydın gönderildiği ekranı göstermesen de, isteğin alındığı URL'de de gerekli kontrolleri yapmalısın.


    seni 4 kere döverim yarın 🤙
Toplam Hit: 1224 Toplam Mesaj: 8
mysql db