Birden fazla veritabanı yapısında normalizasyon

progsmplus2019

Hectopat
Katılım
11 Kasım 2020
Mesajlar
3
Daha fazla  
Cinsiyet
Erkek
CRM benzeri bir proje başlatıyorum,

Şirketler ana veritabanı

1-Şirketler

2-Şubeler

3-Kullanıcılar

4-Kullanıcı yetkilendirmeleri

işlem veritabanı (eklenen her şirket için aynı veya farklı sunucuda tanımlanacak)

1-işlemler (a şirketine ait b şubesinin işlemlerinin tutulacağı tablo(lar))

Tüm şirket kullanıcıları id ile giriş yapacak ve facebook vb. gibi sabit bir sayfadan geçiş yapacak. Ancak o kullanıcı yetkilendirildiği şirket ve o şirkete ait şube veya şubeler için yetkileri dahilinde işlem yapabilecek ve görebilecek. Buraya kadar sorun yok ama farklı şirketlerde olacakları için ilk 4 tabloyu sabit şirket veritabanında, şube işlemlerini ise başka bir veritabanında tutmak istiyorum,

Bunu yapmak için ilk 4 tablonun olduğu sabit bir veritabanım olacak ve sistemde tanımlanan her şirket için ayrı bir işlem veritabanını manuel olarak tanımlayacağım ve bu işlem veritabanının bağlantı dizesini şirketler veritabanının şubeler tablosuna ekleyeceğim ve bağlantı dizesini tanımlayıp bu alanlara bilgi geçireceğim. Bu şekilde kullanıcının erişim yetkisi verilen şubenin veritabanıyla işlem yapmasını istiyorum. Ancak kafamda bir türlü çözemedim, sanki bu yapıda bir sorun varmış gibi ve daha verimli olabileceğini düşünüyorum. Bir sorun olması durumunda bu önemli bilgileri içeren ana şirket veritabanıma erişim vermem gerekecek, böylece şirket yöneticisi kullanıcıyı tanımlayabilecek. Tüm şirketlerin aynı giriş ekranından girmesini istiyorum, çoğunun sitesi yok, her şirket için ayrı alt alan adı ve veri tabanı oluşturmakla uğraşmak istemedim, böylece tek bir şirket tablosundan da lisansı kontrol edebilirim ve şirketlere ait çok büyük verilerden bahsetmiyorum, aslında küçük işletmelerden bahsediyorum. Bunu örneğin letgo gibi düşünebilirsiniz. Bana ait tek bir siteden giriş yapacaklar, o şirketin şubeleri olacak, o şube personeli yetkili oldukları kayıtları girebilecek, sadece onları görebilecek ve bunlarda değişiklik yapabilecek. İşin içinden çıkamadım, tavsiyelerinizi bekliyorum. Şimdiden teşekkürler.
 
Authentication islemleri icin gerekli yetkilendirmeyi merkezi bir DB'de; diger islemleri her tenant icin farkli DB'de tutmak daha mantikli. Aksi durumda cross-db transaction problemleri ile karsilasma ihtimalin dogacak.

Her sey tek bir DB'de de olabilir. Farkli sirketler kendi datalarini kendi himayelerinde tutmak istiyorlarsa o zaman ayri yapi kurgulanabilir ve sadece auth bilgilerini merkezi yere iletirler. Boylece ACID bozulmadan guvenligi saglar hem de sirket verilerini distribute etmis olursun.

aslında küçük işletmelerden bahsediyorum.

Bu durumda her sey tek bir DB'den de yonetilebilir. Ufak bir sirket kendisine ait DB yi yonetmekle ugrasmaz. Yonetimi sen yapacaksan DB yi ayirmanin cok da bir getirisi olmayacak. Tekil bir RDBMS gayet yeterli scale olabilir bu senaryoyu yonetmek icin.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı