1

Konu: sql server da şirket?

şirketler yani dönemler sql serverda her dönem ayrı database mi olmalı? yoksa tek bir database
içinde dönemlere göre table isimleriyle mi çözülmeli ?

sizce en optimize yaklaşım hangisidir?

2

Re: sql server da şirket?

create partition schema ve function'a bak.

3

Re: sql server da şirket?

ben geçen gün sap'ın bir tanıtımına katıldım. orda şimdiye kadar hiç görmediğim bir yapı gördüm. bırak şirketlerin dönemlerin aynı yapıda olmasını. şirketler, dönemler hepsi aynı tablodaydı. bizim gördüğümüz klasik ticari program mantığından çok farklı...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

4

Re: sql server da şirket?

peki ayırımı nasıl yapmışlar ?

5

Re: sql server da şirket?

birer field ile.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

6

Re: sql server da şirket?

Ben hepsi tek database durumunu sevmiyorum.
En kötü yanı 1 şirketi yedekleyip üzerinde çalışamıyorsun.
Veya müşteriden bir data alıp ofiste inceleyeceksin.
Bütün şirketleri alman gerekiyor.

7

Re: sql server da şirket?

Hepsi tek databasede olunca yonetimi daha kolay. Function veya View ile herhangi bir sirketin datasini alabilirsin.
partition olayini es gecmeyin derim. Onun yaptigi logical tek tabloyu (SQL2000'de viewlara yalnizca hatirladigim kadariyla) fiziksel tablocuklara ayirmak. Mesela tek bir tabloda benim icin 20 sirket olsun. Partition ile onu 20 tabloya bolebiliyorum. Fiziksel olarak tablo boyutlari ana parcanin 20 de biri. Insert/Update vs de ise sanki tek tabloymus gibi kullaniyorsun. Gerisini SQL server hallediyor ve akilli kerata, queryden sadece tek bir fiziksel tabloyla ilgilenmesi gerektigini anliyor:) Yonetim kolayligi + performans.
SAP'inda yaptigi anladigim kadariyla partition.

Functionlari da kullanin - table valued functions (inline ve inline olmayan) smile Viewlara parametre veremezsiniz ama functionlara verirsiniz (tabii datada degisiklik yapmayan yerlerde kullanmak kaydiyla).

8

Re: sql server da şirket?

ctapan yazdı:

Ben hepsi tek database durumunu sevmiyorum.
En kötü yanı 1 şirketi yedekleyip üzerinde çalışamıyorsun.
Veya müşteriden bir data alıp ofiste inceleyeceksin.
Bütün şirketleri alman gerekiyor.


logo da tek database kullanıyor. yalnız sap'tan farklı olarak her şirketin tabloları ayrı. sonları 001,002 ... ile bitiyor.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

9

Re: sql server da şirket?

evet logoda linkde tek database ama bana kullanışlı gelmiyor.
özellikle servis elemanları için.

10

Re: sql server da şirket?

Ben de Cemal'e katılıyorum. Her şirket için ayrı bir veritabanı daha mantıklı geliyor. Çetin'in söylediği şey ise güzel olabilir ancak bizlerin ve servis elemanların bilgileri bu noktada biraz sıkıntı yaratıyor.
Klasik programlarda ve süregelen alışkanlıklardan her sene için ayrı bir şirket açılıyor ve devir işlemleri ile yeni şirkete aktarım yapılıyor. Bu durumda yeni şirkette çalışırken bir çok detay bilgiyi göremiyorsunuz bu da bir sene boyunca tecrübe edilen müşteri satıcı ve stok bilgilerinin görülmemesi demek. Bir firma için bence büyük bir kayıp.
Biz her sene için bir şirket açmıyoruz tek veritabanında devam ediyoruz. Ancak muhasebe dönemsellik arz ettiği için muhasebe için Metin'in söylediği gibi tek bir saha ile işimizi çözüyoruz.

/o---------------------o\
     www.haser.com
\o---------------------o/

11

Re: sql server da şirket?

cetinbasoz yazdı:

partition olayini es gecmeyin derim. Onun yaptigi logical tek tabloyu (SQL2000'de viewlara yalnizca hatirladigim kadariyla) fiziksel tablocuklara ayirmak. Mesela tek bir tabloda benim icin 20 sirket olsun. Partition ile onu 20 tabloya bolebiliyorum. Fiziksel olarak tablo boyutlari ana parcanin 20 de biri. Insert/Update vs de ise sanki tek tabloymus gibi kullaniyorsun. Gerisini SQL server hallediyor ve akilli kerata, queryden sadece tek bir fiziksel tabloyla ilgilenmesi gerektigini anliyor:) Yonetim kolayligi + performans.
SAP'inda yaptigi anladigim kadariyla partition.


hocam özür dilerim
partition nedir?  view in bir türümüdür? yada nasıl yapılır?

12

Re: sql server da şirket?

select * from myTable where country = "Brasil"

dediginde senin icin tek olan tablodan bazı kayıtları cekiyorsun. Bu cografya ile ilgili ise oldukca buyuk bir tablo. Belki de o zaman her ulke icin bir database/tablo yapmak isteyeceksin. Onun yerine partition yapıyorsun. Senin icin hala aynı query. Gercekte ise her ulkenin tablosu fiziksel olarak ayrı tabloda. Partition biraz performansa yonelik bir is. Gerisi benim nasıl query yapabildigime baglı.
Sirket,donem ne demek aslında anlamadan cevap verdim onon icin beni pek dinleme. Ben tekrarlayan seyleri pek dizin adıyla ayırır gibi farklı databaselerde tutma yanlısı degilim. Database adı yerine field kullanıyorum. Diger taraftan eger her ulke kendi datasını yonetecek ise o zaman atrı olabilir. Benim dediginde hepsini ben yonetiyorsam (kendilerine ozel ve hic merkezi birlestirme yok ise - yoksa replication servisleri ile zaten dagıtılır)

create partition function
create partitition schema ile yapılıyor.

13

Re: sql server da şirket?

cetinbasoz yazdı:

...
SAP'inda yaptigi anladigim kadariyla partition.
...


eğer partition ms sql server'a özel birşeyse değil. çünkü sap sql server hariç oracle ve bazı birkaç database ile daha çalışabiliyor.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

14

Re: sql server da şirket?

Farketmez o da partitionsiz kullaniyordur.