Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  PostgreSQL'de temel tiplerden* yola çıkarak kendi tiplerinizi tanımlamak için kullanabileceğiniz deyim.

Diyelim ki veritabanınızda bir çok tabloda telefon numarası alanı olacak. Bu alanlara girilen telefon numaralarının formatının doğru olduğunu garantilemek için bir regular expression constraint kullanmayı düşünüyorsunuz. Bunun için tablolarınızı oluştururken;

CREATE TABLE musteri
(
    id     INT4,
    ad     VARCHAR(20),
    ev_tel CHAR(14) CHECK (ev_tel ~ '\([0-9]{3}\) [0-9]{3} [0-9]{4}'),
    is_tel CHAR(14) CHECK (is_tel ~ '\([0-9]{3}\) [0-9]{3} [0-9]{4}'),
    faks   CHAR(14) CHECK (faks   ~ '\([0-9]{3}\) [0-9]{3} [0-9]{4}')
);

şeklinde check kısıtları kullanırsınız. Fakat pek şık görünmüyor. Aynı CHECK ifadesini tekrar tekrar yazdık. İlerde değiştirmemiz gerekirse hepsini dolaşıp değiştirmemiz gerekecek.

İşte bu problemin çözümü için domain kullanılır. Create domain ifadesi ile bir kere kişisel tipimizi oluşturur, sonra dilediğimiz yerde kullanırız. Şöyle;

CREATE DOMAIN telefon_no AS CHAR(14) CHECK (VALUE ~ '\([0-9]{3}\) [0-9]{3} [0-9]{4}');

Artık telefon_no adında bir tipimiz var. Bu tipi kullanarak yukarıdaki tabloyu baştan oluşturalım:

CREATE TABLE musteri
(
    id     INT4,
    ad     VARCHAR(20),
    ev_tel telefon_no,   -- işte bu!
    is_tel telefon_no,   -- harika!
    faks   telefon_no    -- çok iyi ya!
);

fizikci
23 Eylül 2005 21:03 ~ 13 Haziran 2006 13:44
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?
» domain » create


Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen