KEPLIN Docs

Tabeller og felt

Modelleditoren — opprette tabeller, velge kolonnetyper, definere nøkler og indekser, og hente eksisterende tabeller inn i appens modell.

Før det finnes skjermer finnes det data: tabellene der applikasjonen lagrer kontoer, kontakter, bestillinger eller feriesøknader. I Keplin lever disse dataene i en database som er koblet til appen (en datakilde) og beskrives i en modell — tegningen over tabeller, felt, nøkler og relasjoner som resten av plattformen leser.

Denne siden handler om den første halvdelen av det arbeidet: å opprette og endre tabeller, velge typer, definere nøkler og indekser. Relasjonene og enum-feltene har sin egen side i Relasjoner og enums.

Eksemplene kommer fra appen Kundehåndtering: et CRM med tre tabeller — contas, contactos og oportunidades.

To lag: databasen og modellen

Det er verdt å skille to ting som ligner på hverandre, med én gang:

Lag Hva det er Hvem som bruker det
Databasen Tabellene, kolonnene og indeksene som faktisk finnes i motoren som er koblet til appen. Databasemotoren. Å endre den er å kjøre reelle kommandoer.
Modellen Beskrivelsen av disse tabellene for plattformen: entiteter, felt, visningsnavn, beskrivelser, relasjoner og enums. API-ene, skjermene, skriptene og rapportene.

En tabell kommer bare inn i modellen når du importerer den — og å gå ut av modellen sletter ingenting i databasen. Det er derfor plattformen alltid skiller Fjern fra modellen fra Slett.

Åpne modellen

  1. Åpne appen og velg fanen Data i sidefeltet.
  2. Under Datakilder klikker du på navnet til datakilden — i Kundehåndtering, Dados CRM.
  3. Det åpnes en fane med modelldiagrammet i midten, SQL-konsollen nederst, og objekttreet til datakilden utvidet i sidefeltet.

Modellen i appen Kundehåndtering: entitetene Contas, Contactos og Oportunidades, med de to relasjonene tegnet mellom seg.
Modellen i appen Kundehåndtering: entitetene Contas, Contactos og Oportunidades, med de to relasjonene tegnet mellom seg.

Diagrammet dras med musen; knappene nede til venstre zoomer og rammer inn alt. Plasseringen til hver entitet lagres — du rydder diagrammet én gang, og slik åpner det seg igjen.

Objekttreet

Under datakilden viser treet hva som finnes i databasen, gruppert og med antallet i hver gruppe:

Gruppe Hva den lister opp
Tabeller Tabellene i motoren. Hver av dem har sin egen meny (⋯).
Visninger Visningene (lagrede spørringer med navn).
Programmering Funksjoner / prosedyrer og Triggere — se Triggere.

Objekttreet til datakilden: Tabeller, Visninger og Programmering, med antallet i hver gruppe.
Objekttreet til datakilden: Tabeller, Visninger og Programmering, med antallet i hver gruppe.

Feltet Søk i alt… øverst i sidefeltet filtrerer treet; med et aktivt søk åpner gruppene seg av seg selv, og en gruppe uten treff forsvinner.

Opprette en tabell

  1. Hold musen over datakilden og åpne menyen (Handlinger for …).
  2. Velg Ny tabell.
  3. Fyll ut Navn på tabellen — det er navnet som blir liggende i databasen (små bokstaver og understrek sparer deg for hodepine: actividades, linhas_encomenda).
  4. Skjema (valgfritt) betyr bare noe i motorer med skjemaer; la det stå tomt hvis du ikke bruker dem.
  5. Under Beskrivelse av tabellen skriver du hva den er til for. Det er ikke pynt: denne beskrivelsen følger tabellen på plattformen, og det er den som forklarer tabellen for den som kommer dit etter deg.
  6. Definer kolonnene (se nedenfor) og bekreft med Opprett tabell.

Dialogen Ny tabell — navn, valgfritt skjema og beskrivelsen som forklarer hva den er til for.
Dialogen Ny tabell — navn, valgfritt skjema og beskrivelsen som forklarer hva den er til for.

Nota

Tabellen opprettes på ordentlig, i databasen som er koblet til. Er tilkoblingen mot en produksjonsdatabase, er det der tabellen blir til.

Kolonnene

Panelet til venstre i dialogen er kolonnelisten (Kolonner (N)), og knappen + legger til en. Klikk på en kolonne i listen for å redigere den til høyre.

Tabellen starter alltid med en id-kolonne av typen integer, med Primærnøkkel (PK) og Autoinkrement slått på — startpunktet som passer 9 av 10 tabeller.

Felt Hva det gjør
Navn Navnet på kolonnen i databasen.
Type Den logiske typen til kolonnen (fullstendig liste nedenfor).
Lengde Bare i text og char — hvor mange tegn det er plass til.
Presisjon · Skala Bare i decimal — antall siffer totalt og hvor mange som står til høyre for komma (18 · 2 for penger).
Enum-elementer Bare i enum — se Relasjoner og enums.
Tillat NULL Om kolonnen kan stå tom. Slått av nekter databasen poster uten verdi.
Primærnøkkel (PK) Identifiserer posten entydig.
Autoinkrement Motoren genererer verdien ved hver innsetting.
Beskrivelse Hva denne kolonnen er til for.

En ny kolonne i dialogen Ny tabell: navn, type og bryterne Tillat NULL, Primærnøkkel (PK) og Autoinkrement.
En ny kolonne i dialogen Ny tabell: navn, type og bryterne Tillat NULL, Primærnøkkel (PK) og Autoinkrement.

Søppelbøtta som dukker opp når du holder musen over en kolonne i listen, fjerner den (i en ny tabell forsvinner den fra listen med én gang).

Kolonnetypene

Typene er logiske: du beskriver hva kolonnen lagrer, og plattformen oversetter det til riktig type i motoren som er koblet til. Den samme tegningen fungerer for enhver støttet database.

Type Til hva
text Tekst med variabel lengde — navn, beskrivelser, notater.
char Tekst med fast lengde — landkoder, forkortelser.
integer Heltall. Den naturlige typen for en id.
smallint Små heltall.
bigint Store heltall — tellere, eksterne identifikatorer.
decimal Eksakte tall med desimaler. Det er pengenes type.
float Tilnærmede tall — målinger, vitenskapelige prosenter.
boolean Ja/nei.
date En dato, uten klokkeslett.
time Et klokkeslett, uten dato.
datetime Dato og klokkeslett.
uuid Universelle identifikatorer.
json Frie strukturer lagret som strukturert tekst.
binary Binært innhold.
enum Et lukket sett med verdier, definert der og da — se Relasjoner og enums.

Listen over kolonnetyper — logiske typer, like i enhver tilkoblet database.
Listen over kolonnetyper — logiske typer, like i enhver tilkoblet database.

Dica

For pengebeløp bruker du decimal med presisjon og skala (18 · 2), aldri float. float lagrer tilnærminger — og et øre som forsvinner i avrunding på en faktura er et problem som dukker opp måneder senere.

Primærnøkler

Primærnøkkel (PK) er det som identifiserer en post. I praksis er den ikke valgfri: uten PK kan en tabell leses, men kan verken redigeres eller slettes fra skjermene — Tabell sier ifra med Datastoren trenger en primærnøkkel, og Kanban slår av dra-og-slipp. Er nøkkelen satt sammen av mer enn én kolonne, slår du på Primærnøkkel (PK) i hver av dem.

Autoinkrement overlater nummereringen til motoren. Det gir bare mening i heltallskolonner.

Hente en tabell inn i modellen

En tabell som allerede finnes i databasen (opprettet av deg her, eller som lå der fra før) må inn i modellen for at API-ene og skjermene skal se den. Det finnes to veier, og de fører til det samme:

  • Dra tabellen fra treet til diagrammet — den lander der du slipper den.
  • Åpne menyen for tabellen og velg Importer til modell.

Plattformen leser strukturen til tabellen og oppretter entiteten: et navn med stor forbokstav (contasContas), feltene, nøklene og relasjonene den finner deklarert i databasen.

Handlingsmenyen for en tabell: Rediger struktur, Vis data, Importer til modell og Slett.
Handlingsmenyen for en tabell: Rediger struktur, Vis data, Importer til modell og Slett.

Kortet til en entitet

Hver entitet er et kort i diagrammet:

  • Navnet på entiteten i toppen, og to knapper: Finn i treet (merker den tilsvarende tabellen i sidefeltet) og Fjern fra modellen.
  • Ett felt per linje, med navnet til venstre og typen til høyre. Merket PK viser primærnøkkelen, og et ! etter typen betyr at feltet ikke godtar tomt.
  • Enum-felt vises i kursiv, med navnet på enumen i stedet for typen.
  • Med mange felt krymper kortet og tilbyr Vis N felt til / Vis mindre.
  • Nederst lister seksjonen Navigasjon opp veiene til de relaterte entitetene — temaet i Relasjoner og enums.

Kortet til entiteten Contas: feltene med typen til høyre, merket PK og ! på feltene som ikke godtar tomt.
Kortet til entiteten Contas: feltene med typen til høyre, merket PK og ! på feltene som ikke godtar tomt.

Atenção

Fjern fra modellen gjør nøyaktig det: entiteten og feltene og relasjonene dens går ut av plattformens modell, og tabellen i databasen røres ikke. Det er API-ene som brukte entiteten som slutter å virke.

Endre en tabell

Menyen for en tabell → Rediger struktur åpner strukturredigereren, med to faner: Kolonner og Indekser (N).

Rediger struktur på tabellen contas: kolonnene til venstre, detaljene om kolonnen til høyre og Bruk endringene i bunnen.
Rediger struktur på tabellen contas: kolonnene til venstre, detaljene om kolonnen til høyre og Bruk endringene i bunnen.

Øverst står de tre tingene som beskriver tabellen:

Felt Hva det er
Navn i databasen Det virkelige navnet på tabellen.
Visningsnavn (apper) Navnet tabellen er kjent under i appen.
Beskrivelse av tabellen Hva den er til for.

Visningsnavn (apper) er broen mellom en database du har arvet og en app som er til å lese: kolonnen kan hete cli_nm_fis i databasen og nome i appen. Det finnes også per kolonne — og det er visningsnavnet som dukker opp i API-ene, i datastorene og på skjermene.

Endre kolonnene

Klikk på en kolonne i listen til venstre for å redigere den. Endringene skjer ikke med én gang: de samler seg opp og skjer først når du trykker på Bruk endringene.

  • En kolonne som legges til med + er merket som ny og har notatet Ny kolonne — opprettes når endringene tas i bruk.
  • Å slette en kolonne som finnes fra før (søppelbøtta i enden av linjen) streker den over og viser Merket for sletting (DROP) når endringene tas i bruk; Angre tar det tilbake.
  • Er det ingenting å ta i bruk, sier plattformen Ingen endringer.

Kolonnen estado er valgt: navn i databasen, type, Visningsnavn (apper) og beskrivelsen.
Kolonnen estado er valgt: navn i databasen, type, Visningsnavn (apper) og beskrivelsen.

Atenção

Å endre typen på en kolonne som allerede finnes avhenger av motoren. Noen motorer kan det ikke, og plattformen sier det til deg i stedet for å prøve i blinde — utveien er i de tilfellene å opprette en ny kolonne, flytte dataene og slette den gamle. Å slette en kolonne sletter dataene som ligger der: det finnes ingen Angre etter Bruk endringene.

Indekser

Fanen Indekser (N) lister opp indeksene i tabellen — navn, unique-merket og kolonnene — og lar deg opprette og slette.

Slik oppretter du en indeks:

  1. Skriv navnet (konvensjonen ix_alguma_coisa er god, og det er den feltet foreslår).
  2. Kryss av for unique hvis indeksen også skal hindre gjentatte verdier — det er slik du sikrer at det ikke finnes to kunder med samme organisasjonsnummer.
  3. Klikk på kolonnene som inngår i indeksen (rekkefølgen du klikker i er rekkefølgen i indeksen).
  4. Opprett indeks.

Fanen Indekser på tabellen contas: ingen indekser utenom PK-en, og skjemaet Ny indeks under.
Fanen Indekser på tabellen contas: ingen indekser utenom PK-en, og skjemaet Ny indeks under.

En tabell uten egne indekser sier Ingen indekser (utenom PK-en) — primærnøkkelen er allerede en indeks, den trenger ikke å opprettes.

Dica

Indeksene som betyr noe er de på kolonnene du filtrerer og sorterer på hver dag: conta_id i en detaljtabell, datoen i en historikk, statusen listen filtreres på. For mange indekser gjør skrivingen tregere — ikke opprett dem «for sikkerhets skyld».

Se dataene

Menyen for en tabell → Vis data åpner SQL-konsollen nederst, med spørringen allerede kjørt og resultatet synlig. Det er den raske måten å bekrefte hva som ligger der uten å forlate modellen.

Vis data åpner SQL-konsollen med spørringen allerede kjørt — de virkelige radene i tabellen, under modellen.
Vis data åpner SQL-konsollen med spørringen allerede kjørt — de virkelige radene i tabellen, under modellen.

Konsollen godtar også SQL du skriver selv: skriv til venstre, Kjør, og resultatet dukker opp til høyre med antall rader. Skillelinjen mellom konsollen og diagrammet kan dras, og pilen i hjørnet slår den sammen.

Slette en tabell

Menyen for en tabell har Slett, med bekreftelse: Denne operasjonen er permanent og fjerner objektet fra databasen. Ikke forveksle det med Fjern fra modellen, som bare tar entiteten ut av beskrivelsen av appen.

Hvorfor ikke…?

  • Hvorfor ser jeg ikke tabellen min i API-ene? Sannsynligvis er den ennå ikke i modellen. Dra den fra treet til diagrammet, eller bruk Importer til modell.
  • Hvorfor dukker ikke kolonnen jeg opprettet opp? Sjekk at du trykket på Bruk endringene — i strukturredigereren skjer ingenting før det.
  • Hvorfor lar ikke den nye tabellen min meg redigere poster på skjermene? Primærnøkkel (PK) mangler. Uten den kan skjermene bare lese.
  • Hvorfor får jeg ikke endret typen på en kolonne? Det finnes motorer uten «endre kolonne». Plattformen sier ifra, og veien er ny kolonne → kopiere dataene → slette den gamle.
  • Hvorfor er ikke navnet på feltet i appen det samme som i databasen? Visningsnavn (apper) er satt for den kolonnen. Det er med vilje — og redigeres på samme sted.
  • Hvorfor forsvant entiteten fra diagrammet, mens tabellen fortsatt står i treet? Den ble fjernet fra modellen. Dra den fra treet til diagrammet igjen.