Field Type olarak MsSql deki gibi Bit alanı nasıl seçebiliri

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Field Type olarak MsSql deki gibi Bit alanı nasıl seçebiliri

Mesaj gönderen kahraman1285 »

Firebird yeni öğreniyorum.

ilk defa tablo oluşturacağım ve sütunlardan biri aynı Ms_Sql serverdaki gibi "bit" bi alandan oluşacak yani sadece "0-1" yada "true false" olarak.

ama Field Type olarak MsSql deki gibi Bit alanını göremedim firebird de bu yok mu eğer yoksa onun yerine "char" mı kullanmalıyım default alan değeri olarak "0" girmem "false" anlamına gelirmi?

yardımlarınızı bekliyorum
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bildiğim kadarıyla Firebird de bit alan tanımı henüz yok. char(1) değip '0' veya '1' ataması yapıp kullanabilirsiniz. Veritabanları sayısal alanlarda daha hızlı işlem yapabildiğinden 2 bayt lık smallint bi alan tanımlayıp kullanabilirsin. Hatta bu alanı boolean alan olarak da kullanabilirsin. Aşağıdaki şekilde oluşturacağın domain i bu iş için kullanabilirsin. 0 false, 1 true

Kod: Tümünü seç

CREATE DOMAIN DM_BOOLEAN AS SMALLINT
DEFAULT 0
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

özür dilerim yeni öğreniyorum o yüzden size komik gelebilir ama "domain" nedir ve ne için kullanılır firebird'de.

ben mssql de gayet iyi veritabanı hazırlayabiliyorum firebird'dü yeni öğrenmeye başladığım için biraz garipsiyorum.domain dediğiniz stored procedure mü?

yazdığınız kod gene generators'un içinde gözükecek mi? olayı biraz daha açarsanız çok yardımcı olacaksınız


teşekkürler...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

kahraman1285 yazdı:özür dilerim yeni öğreniyorum o yüzden size komik gelebilir ama "domain" nedir ve ne için kullanılır firebird'de.

...
DOMAIN şu ki; veritabanında oluşturacağınız tablolarda büyük ihtimal birbiri ile ilişkili alanlar olacaktır. Mesela INTEGER alanlar (4 bayt) . veya SMALLINT alanlar (2 bayt) veya BOOLEAN alanlar yada VARCHAR(30) diye başka bir alan/alanlar. VARCHAR(30) u bir çok tabloda ve alanda kullanmışsan bir tane DM_VARCHAR_ADI diye domain tanımlar o alanlara atayabilirsin. Ya da smallint alanlar için DM_MIKTAR adında SMALLINT tipinde bir alan oluşturup tüm tablolardaki smallint alanlara bunu atayabilirsin. Şimdi ortak bir yapı olmasının yanında önemli bir faydası da; yarın bir gün varchar(30) luk alanları varchar(50) yapmaya kaltığında hangi tabloda var diye aramadan sadece DM_VARCHAR_ADI domain inin VARCHAR(50) yapman yeterli olur. Aynı şekilde smallint den büyük sayılar oluşmaya başladığında da DM_MIKTAR domain ini INTEGER/NUMERIC(x, y)/DOUBLE PRECISION yapman yeterli olur. Doğal olarak veritabanını tasarım aşamasında bu ileriye dönük olabilecek gereksinimleri iyi tasarlamak da işin bir başka boyutu :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Hocam teşekkürler soruma bu kadar hızlı bi cevap alabileceğimi zannetmiyordum beni şaşırttınız...

anlattığınız domain' aslında mssql server da ben kullanmıştım orda da adı "user defined data types" diye geçiyor şimdi eski yaptığıma da baktım. siz anlattığınız sebepden dolayı gerçekten "domain" kullanmak büyük kolaylık.

zaman ayırıp cevapladığınız için teşekkür ederim ...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bilgiyi paylaşmak saklamaktan daha güzel :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla