Tovább a tartalomhoz

Táblák és mezők

A basedb minden táblája egy PostgreSQL-tábla, minden mezője egy típusos oszlop. A megadott címkéből („Échéance”) egy stabil slugosítás olvasható fizikai nevet (echeance) képez: ékezetek nélkül, kisbetűvel, foglalt szavak nélkül.

TípusPostgreSQL-oszlopMegjegyzések
Rövid szövegtextegy sor
Hosszú szövegtextMarkdown: kivonat a rácsban, formázott megjelenítés rámutatáskor, külön szerkesztő; hivatkozhat egy oszlopra
Formázott szövegtext + CHECKíráskor megtisztított HTML, vizuális szerkesztőben írva – lásd lejjebb
Számnumericsoha nem lebegőpontos: egy összeg nem csúszik el
Pénznem, Százalék, Időtartam, Értékelésnumericegy szám és a megjelenítési formátuma: 12,50 €, 15 %, 1:30, ★★★★☆
Jelölőnégyzetboolean
Dátumdate
Dátum és időtimestamptzabszolút időpont, az olvasó időzónájában megjelenítve
Egyszeres választástext + CHECKlehetőségenként szín, ikon vagy kép
Többszörös választástext[] + CHECKa tömboperátorokkal szűrhető
E-mailtext + CHECKaz adatbázis által ellenőrzött cím, egy kattintással megnyitható
Telefon, Vonalkód, Címtextegy rövid szöveg és a formátuma: hívási hivatkozás, fix szélességű betű, hivatkozás a térképre
URLtext + CHECKbevitelkor kiegészül (exemple.fr → https://exemple.fr)
Személyuuida munkaterület egy tagja; ha kijelöli, értesítést kap
Automatikus számbigint identitya már meglévő sorokat is megszámozza; senki nem adja meg kézzel
Kapcsolatuuid + FOREIGN KEYvalódi idegen kulcs a céltáblára
Többszörös kapcsolatuuid[]több kapcsolt sor, integritásukat eseményindító (trigger) biztosítja
KépletSTORED generált oszlopa PostgreSQL számítja – vagy olvasáskor, lásd: Képletek
Kikeresés, Aggregálás, Darabszámnincsolvasáskor számítva, egy kapcsolaton keresztül
Gombnincsmegnyit egy címet, vagy elindít egy automatizálást
Fájl, Képjsonb (metaadatok)a bájtok a fájltárolóba kerülnek

Minden táblának vannak rendszeroszlopai is: _id (UUID v7), _created_at, _updated_at, _created_by, _updated_by – ezeket egy trigger tartja karban, az API-n keresztül soha nem írhatók. A rács ezeket a Rendszerinformációk csoportba sorolja az oszlopok menüjében: minden táblán megvannak, de kevésnél hasznosak.

Egy tábla rácsa számított időtartammal, kikereséssel és darabszámmal

Az adatbázis által érvényesített megszorítások

Szekció neve “Az adatbázis által érvényesített megszorítások”

Amit a felület ígér, azt a PostgreSQL garantálja. Az egyszeres választás egy CHECK megszorítás; a kapcsolat egy FOREIGN KEY; az URL vagy az e-mail-cím egy reguláris kifejezés. A közvetlen SQL-írást, amely ezeket megsérti, az adatbázis elutasítja, ugyanúgy, mint a felületen:

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)

A Pénznem, a Százalék, az Időtartam, az Értékelés, a Telefon, a Vonalkód és a Cím típusként választható ki, de valójában formátumok: az oszlop szám vagy szöveg marad, csak a megjelenítés változik.

FormátumMireÍgy olvasható és adható meg
Pénznemegy számra12 500,00 € – euró, dollár, font, svájci frank, kanadai dollár, jen
Százalékegy számra15 %
Időtartammásodpercek számára1:30, és megadható így is: 1h30, 90 min
Értékelésegy számra1–10 csillag, egy kattintással beállítva
Telefonegy rövid szövegrehívási hivatkozás
Vonalkódegy rövid szövegrefix szélességű betűvel
Címegy rövid szövegrehivatkozás a térképre; a sor részletei panelen a Cím keresése javasolja a megfelelő, teljesen kiírt címeket; a Térkép nézet helyezi el

A formátum utólag is módosítható (Megjelenítés, a mező szerkesztésében) a tárolt értékek érintése nélkül. Nem korlátozza az értéket: egy 5-ös skálán megadott 7-es értékelés 7 marad.

A mező szerkesztésében az Alapértelmezett érték rögzíti, mit kap egy nélküle létrehozott sor:

VálasztásMireA létrehozott sor ezt kapja
Rögzített értéka legtöbb típusraa kiválasztott értéket – egy „Új” státuszt, egy 3-as prioritást
A mai dátumegy dátumraa létrehozás napját, a személy időzónájában
A létrehozás pillanataegy dátum és idő mezőrea pontos időpontot
A sort létrehozó személyegy személy mezőreazt, aki létrehozta – „Felelős: én”

Az új sor részletei panel és az űrlapok előre kitöltve nyílnak meg; a mező kiürítése üresen hagyja. Az alapértelmezés minden létrehozásra érvényes – felület, API, MCP, importálás, megosztott űrlap, automatizálás –, még egy olyan mezőn is, amelyet a személy nem módosíthat: ez a tábla szabálya. A meglévő sorok nem változnak, és egy közvetlen SQL-beszúrás nem kap semmit belőle: a basedb alkalmazza, nem az oszlop.

A képlet angolul íródik (a francia nevek is működnek), a mezők szögletes zárójelben, az argumentumokat , választja el:

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

A szerkesztő felkínálja a beszúrható mezőket és egy függvénypanelt; hiba esetén megnevezi a hibás mezőt vagy karaktert.

CsaládFüggvények
LogikaiIF, IFBLANK, ISBLANK, AND, OR, NOT, TRUE, FALSE
SzámokROUND, ABS, CEILING, FLOOR, MIN, MAX
SzövegUPPER, LOWER, TRIM, LEFT, RIGHT, LEN, TEXT, VALUE
DátumokYEAR, MONTH, DAY, WEEKDAY, DAYS, ADD_DAYS, DATE, TODAY, NOW
Operátorok+ - * /, & szövegek összefűzéséhez, = <> < <= > >=

A képletből a PostgreSQL generált oszlopa lesz: a psql és az Ön eszközei ugyanúgy olvassák, mint a többit. Az a képlet, amely a mai naptól függ (TODAY(), NOW()), vagy amely kikeresésre, illetve aggregálásra hivatkozik, olvasáskor számítódik: a basedb-ben szűrhető és rendezhető, de közvetlen SQL-ben nem létezik.

A képlet nem hivatkozhat sem másik képletre, sem közvetlenül kapcsolatra – ezt a kikeresés teszi meg. Egy szöveg részének kinyerése vagy cseréje később érkezik.

Kikeresések, aggregálások és darabszámok

Szekció neve “Kikeresések, aggregálások és darabszámok”

Három mező olvas egy kapcsolaton keresztül, egyik vagy másik irányban – „a projekt ügyfele”, de „a Projet mezőn keresztül kapcsolt feladatok” is:

  • a kikeresés a kapcsolt sor egy értékét vagy az értékek listáját hozza vissza: egy projekt ügyfelének városát;
  • az aggregálás a kapcsolt sorokon számol: értékek száma, összeg, átlag, minimum, maximum – egy ügyfél árbevétele, az értékeléseinek átlagos pontszáma;
  • a darabszám a kapcsolt sorokat számolja meg: egy projekt feladatainak számát.

Minden olvasáskor kiszámítódnak, az olvasó jogosultságaival: ha a kapcsolt táblához nincs hozzáférése, a mezőhöz sincs. Szűrhetők és rendezhetők. Egyetlen kapcsolatot követnek, nem írhatók, nincs oszlopuk – így közvetlen SQL-ben sem léteznek –, és nem szerepelnek sem az importálásban, sem az űrlapokon, sem az előzményekben.

A kapcsolat egy sort ugyanazon adatbázis egy másik táblájának egy sorához köt. A rács a célsor megjelenítési értékét mutatja – azt az oszlopot, amelyet a táblájához megjelenítési mezőként jelöl ki –, a szűrők pedig áthaladnak a kapcsolaton (clients_id.ville eq "Lyon"). Az egy sorra mutató sorok a sor részletei panelen jelennek meg.

Jelölje be a Rekordonként több sor lehetőséget, és a kapcsolat többszörös lesz: egy feladat több feladattól függ, egy cikk több kategóriába tartozik. A kapcsolt sorok címkékként jelennek meg, kereséssel választhatók ki, és egy kattintással megnyithatók a sor részletei panelről. Egy célsor törlése eltávolítja azt azokból a listákból, amelyek hivatkoztak rá – vagy elutasításra kerül, ha így döntött. A has_any, has_all és is_null szűrők alkalmazhatók, és ezek is áthaladnak a kapcsolaton (taches_ids.titre contains "logo"). A többszörös kapcsolat egyelőre nem rendezhető, nem csoportosítható és nem importálható.

A Gomb mezőnek nincs értéke: cselekszik. Megnyit egy címet – https:// vagy mailto: –, amely hivatkozhat a sorra (mailto:{{E-mail}}), vagy elindít egy automatizálást, amelyet ugyanazon a táblán egy gomb vált ki. Megjelenik a cellában, a kártyán és a sor részletei panelen.

Az adatbázisnak, a táblának és a mezőnek is lehet leírása, amely migráció nélkül módosítható. Átkerül a COMMENT ON utasításba, amelyet a psql olvas, a generált dokumentációba, és abba, amit egy ügynök a describe_table révén olvas.

A formázott szöveg a hosszú szöveg HTML-változata, amelyet a mező létrehozásakor lehet kiválasztani („Formázott szöveg (HTML)”): címsorok, félkövér, dőlt, aláhúzott, áthúzott, listák, idézetek, kód, hivatkozások és elválasztók, egy vizuális szerkesztőben. A HTML-t a rendszer íráskor megtisztítja, akár a felületről, az API-ból, az MCP-szerverről vagy egy importálásból érkezik, egy CHECK megszorítás pedig ezen felül elutasítja a közvetlenül SQL-ben írt veszélyes formákat is (<script>, on… attribútumok, javascript:). Se kép, se táblázat, se szín: amit az adatbázis nem őrizne meg, azt fel sem kínálja.

A hosszú szöveg – akár egyszerű, akár formázott – hivatkozhat a saját sorának egy oszlopára. A szerkesztő Oszlop menüje a kurzor helyére szúrja be a hivatkozást: formázott szövegben egy címkét, Markdownban {{Ville}} alakot.

A szállítás várható időpontja {{Livraison}}, helyszíne {{Ville}}.

  • Az oszlop a hivatkozást úgy tárolja, ahogy le van írva – {{ville}}, a fizikai nevével: ezt olvassa a psql.
  • Minden más helyen – a rácsban, a sor részletei panelen, az API-ban, az MCP-szerverben, a megosztott nézetekben, az automatizálásokban – a szöveg a sor értékével olvasható: „A szállítás várható időpontja 2026. 10. 02., helyszíne Lyon.” Ha a várost módosítja, a szöveg is változik.
  • Az egyszeres választás a címkéjével, a személy a nevével, a dátum az Ön formátumában jelenik meg; a formázott szövegbe beszúrt érték soha nem jelölőkód.
  • Az az oszlop, amelyet az olvasó nem olvashat, semmit nem ad: sem az értékét, sem a nevét.

A formázott szöveget az MI nem töltheti ki: a modell szöveget ír, nem megtisztított HTML-t.

Az adatbázis Struktúra képernyője – az oldalsávban lévő ⋯ menüjében – felsorolja a táblákat és a mezőiket: hozzáadás, átnevezés, kötelezővé tétel, átrendezés, leírás, a megjelenítési mező kijelölése.

Egy adatbázis Struktúra képernyője

A struktúra módosításához Kezelés szintű jogosultság szükséges. Enélkül a képernyő megtekinthető, de semmit nem kínál fel: se gombot, se ceruzát, se fogantyút – a kötelező jelleg és a megjelenítési mező csak ki van írva, nem módosítható. A szerver amúgy is elutasít minden módosítást; a képernyő már nem tesz úgy, mintha elfogadná.

Egy mező hozzáadása, átnevezése vagy típusának módosítása a migrációs motoron keresztül történik: lépésekre bontott terv, rövid zárolások, és megnevezett elutasítás, ha egy adat nem alakítható át.

Egy adatbázis, tábla vagy mező átnevezése egyetlen párbeszédablakban történik. A címke mindig változik, migráció nélkül. Egy adminisztrátor alatta az „Átnevezés az adatbázisban is: clients → comptes” lehetőséget is látja: ha bejelöli, a fizikai név is megváltozik, és megjelenik a hatáselemzés – azok a lekérdezések, SQL-nézetek és automatizálások, amelyek a régi névre hivatkoznak. A régi nevet egy kompatibilitási alias – egy nézet – továbbra is kiszolgálja, amíg frissíti a lekérdezéseit.

A törlés semmit nem töröl el azonnal: a tábla vagy az adatbázis félre kerül (zz_supprime_…), és SQL-ben olvasható marad. A törölt adatbázis visszaállítható; egyetlen tábla visszaállítása a felületről később érkezik. A végleges kiürítés az adminisztrációnak van fenntartva, harminc nappal később, és egy ellenőrzött CSV-exporttal kezdődik.

A basedb az Eodia, egy MI-natív szoftverstúdió szabad szoftvere.