KEPLIN Docs

Tabeller och fält

Modelleditorn — skapa tabeller, välja kolumntyper, definiera nycklar och index, och ta in befintliga tabeller i appens modell.

Innan det finns skärmar finns det data: tabellerna där applikationen sparar konton, kontakter, beställningar eller semesteransökningar. I Keplin lever de uppgifterna i en databas som är kopplad till appen (en datakälla) och beskrivs i en modell — ritningen över tabeller, fält, nycklar och relationer som resten av plattformen läser.

Den här sidan handlar om den första halvan av det arbetet: att skapa och ändra tabeller, välja typer, definiera nycklar och index. Relationerna och enum-fälten har en egen sida i Relationer och enums.

Exemplen kommer från appen Kundhantering: ett CRM med tre tabeller — contas, contactos och oportunidades.

Två lager: databasen och modellen

Det lönar sig att redan nu skilja på två saker som liknar varandra:

Lager Vad det är Vem som använder det
Databasen De tabeller, kolumner och index som faktiskt finns i motorn som är kopplad till appen. Databasmotorn. Att ändra den är att köra riktiga kommandon.
Modellen Beskrivningen av de tabellerna för plattformen: entiteter, fält, visningsnamn, beskrivningar, relationer och enums. API:erna, skärmarna, skripten och rapporterna.

En tabell kommer in i modellen först när du importerar den — och att lämna modellen raderar ingenting i databasen. Det är därför plattformen alltid skiljer Ta bort från modellen från Ta bort.

Öppna modellen

  1. Öppna appen och välj fliken Data i sidofältet.
  2. Klicka på datakällans namn under Datakällor — i Kundhantering, Dados CRM.
  3. En flik öppnas med modelldiagrammet i mitten, SQL-konsolen nedanför och datakällans objektträd utfällt i sidofältet.

Modellen i appen Kundhantering: entiteterna Contas, Contactos och Oportunidades, med de två relationerna uppritade mellan sig.
Modellen i appen Kundhantering: entiteterna Contas, Contactos och Oportunidades, med de två relationerna uppritade mellan sig.

Diagrammet dras med musen; knapparna i nedre vänstra hörnet zoomar och ramar in allt. Varje entitets position sparas — du städar diagrammet en gång, och så ser det ut när du öppnar det igen.

Objektträdet

Under datakällan visar trädet vad som finns i databasen, grupperat och med antalet i varje grupp:

Grupp Vad den listar
Tabeller Motorns tabeller. Var och en har en egen meny (⋯).
Vyer Vyerna (sparade frågor med namn).
Programmering Funktioner/procedurer och Triggers — se Triggers.

Datakällans objektträd: Tabeller, Vyer och Programmering, med antalet i varje grupp.
Datakällans objektträd: Tabeller, Vyer och Programmering, med antalet i varje grupp.

Rutan Sök i allt… överst i sidofältet filtrerar trädet; med en aktiv sökning fälls grupperna ut av sig själva, och en grupp utan träffar försvinner.

Skapa en tabell

  1. Hovra över datakällan och öppna menyn (Åtgärder för …).
  2. Välj Ny tabell.
  3. Fyll i Tabellens namn — det är namnet som hamnar i databasen (gemener och understreck besparar dig huvudvärk: actividades, linhas_encomenda).
  4. Schema (valfritt) spelar bara roll i motorer med scheman; lämna det tomt om du inte använder sådana.
  5. Skriv i Tabellens beskrivning vad tabellen används till. Det är inte dekoration: beskrivningen följer med tabellen genom plattformen och är det som förklarar tabellen för den som kommer dit efter dig.
  6. Definiera kolumnerna (härnäst) och bekräfta med Skapa tabell.

Dialogen Ny tabell — namn, valfritt schema och beskrivningen som förklarar vad tabellen används till.
Dialogen Ny tabell — namn, valfritt schema och beskrivningen som förklarar vad tabellen används till.

Nota

Tabellen skapas på riktigt, i den anslutna databasen. Om anslutningen går till en produktionsdatabas är det där tabellen föds.

Kolumnerna

Dialogens vänstra panel är kolumnlistan (Kolumner (N)), och knappen + lägger till en. Klicka på en kolumn i listan för att redigera den till höger.

Tabellen börjar alltid med en kolumn id av typen integer, med Primärnyckel (PK) och Autoinkrement påslagna — den start som duger till 9 av 10 tabeller.

Fält Vad det gör
Namn Kolumnens namn i databasen.
Typ Kolumnens logiska typ (fullständig lista nedan).
Längd Bara i text och char — hur många tecken som får plats.
Precision · Skala Bara i decimal — totalt antal siffror och hur många som hamnar till höger om decimaltecknet (18 · 2 för pengar).
Enum-alternativ Bara i enum — se Relationer och enums.
Tillåter NULL Om kolumnen får vara tom. Avslaget vägrar databasen poster utan värde.
Primärnyckel (PK) Identifierar posten unikt.
Autoinkrement Motorn genererar värdet vid varje infogning.
Beskrivning Vad den här kolumnen används till.

En ny kolumn i dialogen Ny tabell: namn, typ och reglagen Tillåter NULL, Primärnyckel (PK) och Autoinkrement.
En ny kolumn i dialogen Ny tabell: namn, typ och reglagen Tillåter NULL, Primärnyckel (PK) och Autoinkrement.

Papperskorgen som dyker upp när du hovrar över en kolumn i listan tar bort den (i en ny tabell försvinner den direkt ur listan).

Kolumntyperna

Typerna är logiska: du beskriver vad kolumnen sparar, och plattformen översätter till rätt typ i den anslutna motorn. Samma ritning fungerar mot vilken databas som helst som stöds.

Typ Till vad
text Text med varierande längd — namn, beskrivningar, anteckningar.
char Text med fast längd — landskoder, förkortningar.
integer Heltal. Den naturliga typen för ett id.
smallint Små heltal.
bigint Stora heltal — räknare, externa identifierare.
decimal Exakta tal med decimaler. Det är pengarnas typ.
float Approximativa tal — mätningar, vetenskapliga procenttal.
boolean Ja/Nej.
date Ett datum, utan klockslag.
time Ett klockslag, utan datum.
datetime Datum och tid.
uuid Universella identifierare.
json Fria strukturer sparade som strukturerad text.
binary Binärt innehåll.
enum En sluten uppsättning värden, definierad på plats — se Relationer och enums.

Listan över kolumntyper — logiska typer, likadana i vilken ansluten databas som helst.
Listan över kolumntyper — logiska typer, likadana i vilken ansluten databas som helst.

Dica

Använd decimal med precision och skala (18 · 2) för penningbelopp, aldrig float. float sparar approximationer — och ett öre som går förlorat i avrundning på en faktura är ett problem som dyker upp månader senare.

Primärnycklar

Primärnyckel (PK) är det som identifierar en post. Den är i praktiken inte valfri: utan PK kan en tabell läsas men varken redigeras eller raderas från skärmarna — Tabellen varnar Datastoren behöver en primärnyckel, och Kanban stänger av dragningen. Om nyckeln består av mer än en kolumn slår du på Primärnyckel (PK) på var och en av dem.

Autoinkrement lämnar över numreringen till motorn. Det är bara meningsfullt på heltalskolumner.

Ta in en tabell i modellen

En tabell som redan finns i databasen (skapad av dig här, eller som redan låg där) måste komma in i modellen för att API:erna och skärmarna ska se den. Det finns två vägar, och de går ut på samma sak:

  • Dra tabellen från trädet till diagrammet — den landar där du släpper den.
  • Öppna tabellens meny och välj Importera till modell.

Plattformen läser tabellens struktur och skapar entiteten: ett namn med inledande versal (contasContas), fälten, nycklarna och de relationer den hittar deklarerade i databasen.

Åtgärdsmenyn för en tabell: Redigera struktur, Visa data, Importera till modell och Ta bort.
Åtgärdsmenyn för en tabell: Redigera struktur, Visa data, Importera till modell och Ta bort.

En entitets kort

Varje entitet är ett kort i diagrammet:

  • Entitetens namn i rubriken, och två knappar: Hitta i trädet (markerar motsvarande tabell i sidofältet) och Ta bort från modellen.
  • Ett fält per rad, med namnet till vänster och typen till höger. Märket PK markerar primärnyckeln, och ett ! efter typen betyder att fältet inte tar emot tomt värde.
  • Enum-fält visas i kursiv stil, med enumens namn i stället för typen.
  • Med många fält krymper kortet och erbjuder Visa N fält till / Visa mindre.
  • Längst ned listar avsnittet Navigering vägarna till de relaterade entiteterna — ett ämne för Relationer och enums.

Kortet för entiteten Contas: fälten med typen till höger, märket PK och utropstecknet för de fält som inte tar emot tomt värde.
Kortet för entiteten Contas: fälten med typen till höger, märket PK och utropstecknet för de fält som inte tar emot tomt värde.

Atenção

Ta bort från modellen gör exakt det: entiteten och dess fält och relationer försvinner ur plattformens modell, och tabellen i databasen rörs inte. Det är API:erna som använde entiteten som slutar fungera.

Ändra en tabell

Menyn på en tabell → Redigera struktur öppnar strukturredigeraren, med två flikar: Kolumner och Index (N).

Redigera struktur på tabellen contas: kolumnerna till vänster, kolumnens detaljer till höger och Tillämpa ändringar i sidfoten.
Redigera struktur på tabellen contas: kolumnerna till vänster, kolumnens detaljer till höger och Tillämpa ändringar i sidfoten.

Överst finns de tre saker som beskriver tabellen:

Fält Vad det är
Namn i databasen Tabellens riktiga namn.
Visningsnamn (appar) Namnet som tabellen är känd under i appen.
Tabellens beskrivning Vad den används till.

Visningsnamn (appar) är bron mellan en databas du har ärvt och en läsbar app: kolumnen kan heta cli_nm_fis i databasen och nome i appen. Det finns också per kolumn — och det är visningsnamnet som dyker upp i API:erna, i datastorerna och på skärmarna.

Pilla på kolumnerna

Klicka på en kolumn i listan till vänster för att redigera den. Ändringarna sker inte direkt: de samlas på hög och händer först när du trycker på Tillämpa ändringar.

  • En kolumn som lagts till med + visas markerad som ny och kommer med noteringen Ny kolumn — skapas när ändringarna tillämpas.
  • Att radera en befintlig kolumn (papperskorgen i slutet av raden) stryker över den och visar Markerad för borttagning (DROP) vid tillämpning; Ångra gör det ogjort.
  • Om det inte finns något att tillämpa säger plattformen Inga ändringar.

Kolumnen estado vald: namn i databasen, typ, Visningsnamn (appar) och beskrivningen.
Kolumnen estado vald: namn i databasen, typ, Visningsnamn (appar) och beskrivningen.

Atenção

Att ändra typ på en kolumn som redan finns beror på motorn. Vissa motorer kan inte göra det, och plattformen säger det till dig i stället för att försöka i blindo — utvägen i de fallen är att skapa en ny kolumn, flytta över data och radera den gamla. Att radera en kolumn raderar de data som ligger där: det finns inget Ångra efter Tillämpa ändringar.

Index

Fliken Index (N) listar tabellens index — namn, märket unique och kolumnerna — och låter dig skapa och ta bort dem.

Så här skapar du ett index:

  1. Skriv namnet (konventionen ix_alguma_coisa är bra, och det är den fältet föreslår).
  2. Kryssa i unique om indexet också ska hindra upprepade värden — det är så du garanterar att det inte finns två kunder med samma organisationsnummer.
  3. Klicka på kolumnerna som ingår i indexet (ordningen du klickar i är indexets ordning).
  4. Skapa index.

Fliken Index på tabellen contas: inga index utöver PK, och formuläret Nytt index nedanför.
Fliken Index på tabellen contas: inga index utöver PK, och formuläret Nytt index nedanför.

En tabell utan egna index säger Inga index (utöver PK) — primärnyckeln är redan ett index och behöver inte skapas.

Dica

De index som spelar roll är de på kolumnerna som du filtrerar och sorterar på varje dag: conta_id i en detaljtabell, datumet i en historik, statusen som listan filtreras på. För många index gör skrivningarna långsammare — skapa dem inte ”för säkerhets skull”.

Visa data

Menyn på en tabell → Visa data öppnar SQL-konsolen nedtill, redan med frågan färdig och resultatet framme. Det är det snabba sättet att kontrollera vad som ligger där utan att lämna modellen.

Visa data öppnar SQL-konsolen med frågan redan färdig — tabellens riktiga rader, under modellen.
Visa data öppnar SQL-konsolen med frågan redan färdig — tabellens riktiga rader, under modellen.

Konsolen tar också emot SQL som du själv skriver: skriv till vänster, Kör, och resultatet dyker upp till höger med antalet rader. Listen som skiljer konsolen från diagrammet går att dra, och pilen i hörnet fäller ihop den.

Radera en tabell

Menyn på en tabell har Ta bort, med bekräftelse: Åtgärden är permanent och tar bort objektet från databasen. Ska inte förväxlas med Ta bort från modellen, som bara plockar ut entiteten ur appens beskrivning.

Varför inte…?

  • Varför ser jag inte min tabell i API:erna? Förmodligen är den ännu inte i modellen. Dra den från trädet till diagrammet, eller använd Importera till modell.
  • Varför skapade jag en kolumn och den syns inte? Kontrollera att du tryckte på Tillämpa ändringar — i strukturredigeraren händer ingenting innan dess.
  • Varför går det inte att redigera poster på skärmarna i min nya tabell? Primärnyckeln (PK) saknas. Utan den kan skärmarna bara läsa.
  • Varför kan jag inte ändra typ på en kolumn? Det finns motorer utan ”ändra kolumn”. Plattformen varnar dig, och vägen är ny kolumn → kopiera data → radera den gamla.
  • Varför är fältets namn i appen inte databasens? Kolumnens Visningsnamn (appar) är satt. Det är med flit — och det redigeras på samma ställe.
  • Varför försvann entiteten ur diagrammet men tabellen finns kvar i trädet? Den togs bort från modellen. Dra den från trädet till diagrammet igen.