İçeriğe geç

Tablolar ve alanlar

basedb’deki her tablo bir PostgreSQL tablosudur; her alan da tipli bir sütun. Girdiğiniz etiket (“Échéance”), kararlı bir slug dönüşümüyle okunabilir bir fiziksel ada (echeance) dönüşür: aksansız, küçük harfli, ayrılmış sözcük içermeyen.

TürPostgreSQL sütunuNotlar
Kısa metintexttek satır
Uzun metintextMarkdown: ızgarada bir özet, üzerine gelince işlenmiş hâli, ayrı bir düzenleyici; bir sütuna atıf yapabilir
Zengin metintext + CHECKyazılırken temizlenen, görsel bir düzenleyicide yazılan HTML — aşağıya bakın
Sayınumericasla kayan nokta değil: bir tutar kaymaz
Para birimi, Yüzde, Süre, Derecelendirmenumericbir sayı ve onun görüntüleme biçimi: 12,50 €, 15 %, 1:30, ★★★★☆
Onay kutusuboolean
Tarihdate
Tarih ve saattimestamptzmutlak bir an, okuyanın saat diliminde gösterilir
Tekli seçimtext + CHECKseçenek başına renk, simge ya da görsel
Çoklu seçimtext[] + CHECKdizi operatörleriyle filtrelenebilir
E-postatext + CHECKveritabanının doğruladığı, tek tıkla açılan bir adres
Telefon, Barkod, Adrestextkısa bir metin ve onun biçimi: arama bağlantısı, sabit genişlikli yazı, haritaya bağlantı
URLtext + CHECKgiriş sırasında tamamlanır (exemple.fr → https://exemple.fr)
Kişiuuidçalışma alanının bir üyesi; onu atamak kendisine haber verir
Otomatik numarabigint (identity)zaten var olan satırları da numaralandırır; kimse elle girmez
İlişkiuuid + FOREIGN KEYhedef tabloya giden gerçek bir yabancı anahtar
Çoklu ilişkiuuid[]bütünlüğü bir tetikleyiciyle korunan birden çok bağlı satır
FormülSTORED üretilmiş sütunPostgreSQL tarafından hesaplanır — ya da okuma sırasında, bkz. Formüller
Arama, Toplama, Sayımyokokuma sırasında, bir ilişki üzerinden hesaplanır
Düğmeyokbir adres açar ya da bir otomasyon başlatır
Dosya, Görseljsonb (üst veriler)baytlar dosya depolamasına gider

Her tablo ayrıca sistem sütunlarını taşır: _id (UUID v7), _created_at, _updated_at, _created_by, _updated_by — bir tetikleyici tarafından tutulur, API ile asla yazılamaz. Izgara bunları sütun menüsünde Sistem bilgileri altında toplar: her tabloda bulunurlar, ama pek azında işe yararlar.

Hesaplanan bir süre, bir arama ve bir sayım içeren bir tablonun ızgarası

Arayüzün vaat ettiğini PostgreSQL garanti eder. Bir tekli seçim bir CHECK kısıtlamasıdır; bir ilişki bir FOREIGN KEY; bir URL ya da e-posta adresi bir düzenli ifade. Bunları ihlal eden doğrudan SQL yazması, arayüzde olduğu gibi reddedilir:

Check constraints:
"ck_opportunites__statut__enum" CHECK (statut = ANY (ARRAY['nouveau', 'qualifie', …]))
Foreign-key constraints:
"fk_opportunites__clients_id" FOREIGN KEY (clients_id) REFERENCES b_t4z56fq_ventes.clients(_id)

Para birimi, Yüzde, Süre, Derecelendirme, Telefon, Barkod ve Adres birer tür gibi seçilir, ama aslında biçimdir: sütun bir sayı ya da metin olarak kalır, yalnızca okunuşu değişir.

BiçimNeyin üzerindeNasıl okunur ve girilir
Para birimibir sayı12 500,00 € — avro, dolar, sterlin, İsviçre frangı, Kanada doları, yen
Yüzdebir sayı15 %
Süresaniye cinsinden bir sayı1:30; 1h30, 90 min olarak girilir
Derecelendirmebir sayı1 ile 10 arası yıldız, tek tıkla ayarlanır
Telefonkısa bir metinbir arama bağlantısı
Barkodkısa bir metinsabit genişlikli yazıyla
Adreskısa bir metinharitaya bir bağlantı; satır ayrıntılarında Adres bul, tam yazılmış uygun adresleri önerir; Harita görünümü onu yerleştirir

Bir biçim, kayıtlı değerlere dokunmadan sonradan değiştirilebilir (alanın düzenleme ekranında Görüntüleme). Biçim değeri sınırlamaz: 5’lik bir ölçekte 7 olan derecelendirme 7 olarak kalır.

Bir alanın düzenlenmesinde, Varsayılan değer, onsuz oluşturulan bir satırın ne alacağını belirler:

SeçimÜzerindeOluşturulan satır alır
Sabit bir değerçoğu türseçilen değer — “Yeni” durumu, 3 önceliği
Bugünün tarihibir tarihkişinin saat diliminde, oluşturulduğu gün
Oluşturulma anıbir tarih ve saattam saat
Satırı oluşturan kişibir kişionu kim oluşturduysa — “Sorumlu: ben”

Yeni satır ayrıntıları ve formlar önceden doldurulmuş açılır; alanı boşaltmak onu boş bırakır. Varsayılan değer her oluşturma için geçerlidir — arayüz, API, MCP, içe aktarma, paylaşılan form, otomasyon —, kişinin değiştiremediği bir alanda dahi: bu, tablonun kuralıdır. Var olan satırlar değişmez ve doğrudan SQL ile yapılan bir ekleme hiçbirini almaz: bunu uygulayan basedb’dir, sütun değil.

Bir formül İngilizce yazılır (Fransızca adlar da çalışır); alanlar köşeli parantez içinde, argümanlar , ile ayrılır:

ROUND([Montant HT] * (1 + [Taux de TVA]), 2)
IF([Payée], FALSE, DAYS(TODAY(), [Échéance]) > 0)
DAYS([Fin], [Début])

Düzenleyici eklenecek alanları ve bir işlevler panelini sunar; bir hata, soruna yol açan alanı ya da karakteri belirtir.

Aileİşlevler
MantıkIF, IFBLANK, ISBLANK, AND, OR, NOT, TRUE, FALSE
SayılarROUND, ABS, CEILING, FLOOR, MIN, MAX
MetinUPPER, LOWER, TRIM, LEFT, RIGHT, LEN, TEXT, VALUE
TarihlerYEAR, MONTH, DAY, WEEKDAY, DAYS, ADD_DAYS, DATE, TODAY, NOW
Operatörler+ - * /, metin birleştirmek için &, = <> < <= > >=

Bir formül, PostgreSQL’de bir üretilmiş sütun olur: psql ve araçlarınız onu diğer sütunlar gibi okur. Güne bağlı olan (TODAY(), NOW()) ya da bir aramaya veya toplamaya atıf yapan formül okuma sırasında hesaplanır: basedb’de filtrelenir ve sıralanır, ama doğrudan SQL’de yoktur.

Bir formül ne başka bir formüle ne de doğrudan bir ilişkiye atıf yapar — bunu bir arama yapar. Bir metnin bir kısmını ayıklamak ya da değiştirmek daha sonra gelecek.

Üç alan bir ilişki üzerinden, bir yönde ya da diğerinde okur — “projenin müşterisi”, ama aynı zamanda “Projet alanıyla bağlı görevler”:

  • bir arama, bağlı satırdan bir değeri ya da değerlerin listesini getirir: bir projenin müşterisinin şehri;
  • bir toplama, bağlı satırlar üzerinde hesaplama yapar: değer sayısı, toplam, ortalama, minimum, maksimum — bir müşterinin cirosu, değerlendirmelerinin ortalama puanı;
  • bir sayım, bağlı satırları sayar: bir projenin görev sayısı.

Her okumada, okuyan kişinin izinleriyle hesaplanırlar: bağlı tablo size kapalıysa alan da kapalıdır. Filtrelenir ve sıralanırlar. Tek bir ilişkiyi izlerler, yazılamazlar, sütunları yoktur — dolayısıyla doğrudan SQL’de var olmazlar — ve ne içe aktarmada, ne formlarda ne de geçmişte yer alırlar.

Bir ilişki, bir satırı aynı veritabanındaki başka bir tablonun bir satırına bağlar. Izgara hedef satırın görüntüleme değerini gösterir — hedef tablo için bu amaçla belirlediğiniz sütun — ve filtreler ilişkiyi aşar (clients_id.ville eq "Lyon"). Bir satıra işaret eden satırlar, o satırın ayrıntılarında görünür.

Kayıt başına birden çok satır kutusunu işaretlediğinizde ilişki çoklu hâle gelir: bir görev birden çok göreve bağlıdır, bir makale birden çok kategoriye aittir. Bağlı satırlar rozet olarak görünür, bir aramayla seçilir ve satır ayrıntılarından tek tıkla açılır. Bir hedef satırı silmek onu kendisine atıf yapan listelerden çıkarır — ya da, bunu seçtiyseniz, reddedilir. has_any, has_all ve is_null filtreleri uygulanır ve bunlar da ilişkiyi aşar (taches_ids.titre contains "logo"). Bir çoklu ilişki sıralanmaz, gruplamada kullanılmaz ve henüz içe aktarılamaz.

Bir Düğme alanının değeri yoktur: eylem yapar. Bir adres açar — https:// ya da mailto:; satıra atıf yapabilir (mailto:{{E-mail}}) — ya da aynı tabloda bir düğmeyle tetiklenen bir otomasyonu başlatır. Hücrede, kartta ve satır ayrıntılarında görünür.

Bir veritabanı, bir tablo ve bir alan, geçiş gerektirmeden değiştirilebilen bir açıklama taşır. Açıklama, psql’in okuduğu COMMENT ON içine, oluşturulan belgelere ve bir ajanın describe_table ile okuduğu bilgilere kopyalanır.

Zengin metin, uzun metnin HTML çeşididir ve alan oluşturulurken seçilir (“Zengin metin (HTML)”): başlıklar, kalın, italik, altı çizili, üstü çizili, listeler, alıntılar, kod, bağlantılar ve ayırıcılar, görsel bir düzenleyicide. HTML ister arayüzden, ister API’den, MCP sunucusundan ya da bir içe aktarmadan gelsin yazılırken temizlenir; ayrıca bir CHECK kısıtlaması, doğrudan SQL ile yazılan tehlikeli biçimleri de reddeder (<script>, on… öznitelikleri, javascript:). Görsel, tablo ya da renk yok: veritabanının saklamayacağı şey sunulmaz.

Bir uzun metin — basit ya da zengin — kendi satırındaki bir sütuna atıf yapabilir. Düzenleyicinin Sütun menüsü atfı imlecin bulunduğu yere ekler: zengin metinde bir rozet, Markdown’da {{Ville}}.

Teslimat {{Livraison}} tarihinde {{Ville}} şehrine planlanmıştır.

  • Sütun atfı yazıldığı gibi, fiziksel adıyla saklar — {{ville}}: psql’in okuduğu budur.
  • Başka her yerde — ızgara, satır ayrıntıları, API, MCP sunucusu, paylaşılan görünümler, otomasyonlar — metin satırın değeriyle okunur: “Teslimat 02/10/2026 tarihinde Lyon şehrine planlanmıştır.” Şehri değiştirmek metni de değiştirir.
  • Bir tekli seçim etiketiyle, bir kişi adıyla, bir tarih sizin biçiminizde okunur; zengin metne eklenen bir değer asla biçimlendirme kodu (markup) olmaz.
  • Okuyanın okuyamadığı bir sütun hiçbir şey vermez: ne değerini ne de adını.

Zengin metin yapay zeka tarafından doldurulamaz: bir model metin yazar, temizlenmiş HTML değil.

Veritabanının Yapı ekranı — kenar çubuğundaki ⋯ menüsünde — tabloları ve alanlarını listeler: ekleme, yeniden adlandırma, zorunlu kılma, yeniden sıralama, açıklama yazma, görüntülenen alanı belirleme.

Bir veritabanının Yapı ekranı

Yapıyı değiştirmek Yönetim düzeyini gerektirir. Bu düzey olmadan ekran incelenebilir ama hiçbir şey sunmaz: ne düğme, ne kalem, ne tutamaç — zorunluluk ve görüntülenen alan belirtilir, ama değiştirilmeye sunulmaz. Sunucu zaten her değişikliği reddeder; ekran artık kabul ediyormuş gibi yapmaz.

Bir alanı eklemek, yeniden adlandırmak ya da türünü değiştirmek geçiş motorundan geçer: adımlara bölünmüş bir plan, kısa kilitler ve bir veri dönüştürülemediğinde gerekçesi belirtilen bir ret.

Bir veritabanını, tabloyu ya da alanı yeniden adlandırmak tek bir iletişim kutusunda yapılır. Etiket her zaman, geçiş gerektirmeden değişir. Bir yönetici altında “Veritabanında da yeniden adlandır: clients → comptes” seçeneğini görür: işaretlendiğinde fiziksel ad da değişir ve etki analizi görüntülenir — eski ada atıf yapan sorgular, SQL görünümleri ve otomasyonlar. Eski ad, sorgularınızı güncelleyene kadar bir uyumluluk takma adı — bir görünüm — tarafından sunulmaya devam eder.

Silmek hiçbir şeyi hemen yok etmez: tablo ya da veritabanı bir kenara alınır (zz_supprime_…) ve SQL’de okunabilir kalır. Silinmiş bir veritabanı geri yüklenebilir; tek bir tabloyu arayüzden geri getirmek yakında gelecek. Kalıcı temizleme yalnızca yönetim paneline aittir, otuz gün sonra yapılabilir ve doğrulanmış bir CSV dışa aktarımıyla başlar.

basedb, yapay zeka odaklı yazılım stüdyosu Eodia tarafından geliştirilen özgür bir yazılımdır.