Hele Regneark Databaser som Ting er Ganske Kult

0
30

Et regneark har alltid vært en sterk (hvis det ganske ordrett) analogi i en database. En database har tabeller, som er som et enkelt regneark. Tenk deg et regneark for sporing Innbydelser til et bryllup. Over toppen, kolonne titler som fornavn, etternavn, Adresse, og å Delta?. Titlene er også kolonner i en databasetabell. Så hver person i dette regnearket er bokstavelig talt en rad, og det er også en rad i en database-tabell (eller en oppføring, element, eller selv tuple hvis du virkelig er en nerd).

Det er blitt stadig mer og mer vanlig at dette trenger ikke å være en analogi. Vi kan bokstavelig talt kan bruke et regneark GRENSESNITT til å være vår faktiske database. Det er meningsfull i at det ikke bare vise data fra database som et regneark, men å lage regneark-lignende funksjoner førsteklasses borgere av appen rett ved siden av database-lignende funksjoner.

Med et regneark, poenget kan vise ting som helhet og forstå ting på den måten. Søking, sortering, skrive inn og redigere data direkte i GRENSESNITTET, og foreta visuell effekt som er nyttig.

Med en database, trenger du ikke egentlig ser rett på det — du spør på den og bruke resultatene. Skrive inn og redigere data er gjort gjennom koden og Api-er.

Det er ikke å si at du ikke kan se direkte på en database. Database verktøy som Oppfølgeren Pro (og mange andre!) tilbyr et grensesnitt for å se på tabeller i et regneark-lignende format:

Det som er fint er at ideen om regneark og databaser kan co-eksistere, og tilbyr det beste av begge verdener på en gang. Minst, i et visst omfang.

Vi har snakket om Airtable før her på CSS-Triks, og det er et lysende eksempel på dette.

Airtable kaller dem baser, og mens du kan vise dataene i dem i alle slags nyttige måter (en kalender! et galleri! en kanban!), kanskje den primære syn er at i et regneark:

Hvis alt du noensinne gjøre med Airtable er å bruke det som et regneark, det er fortsatt veldig fin. BRUKERGRENSESNITTET er super godt gjort. Ting som filtrering og sortering føle seg som ekte førsteklasses borgere på en måte at det er nesten rart at andre regneark teknologi ikke. Selv de typer felt føler praktiske og moderne.

Og med alle de forskjellige visningene i en base, og enda kulere, alle “blokker” de tilbyr for å gjøre den mer dashbordet-som, det er et kraftig verktøy.

Men poenget jeg prøver å gjøre her er at du kan bruke din Airtable base som en database, siden du automatisk ha lese/skrive-API tilgang til din base.

Så kult at disse API docs bruke data fra din egen base for å demonstrere API.

Jeg snakket om dette i min artikkel om Hvordan Å Bruke Airtable som en Front-End Utvikler. Dette API-tilgang er awesome fra en lese data perspektiv, å gjøre ting som å bruke det som en datakilde for en blogg. Robin dyttet i data til å bygge sin egen Reagere-powered grensesnitt. Jeg grave at det er en GraphQL grensesnitt, hvis det er tredje-parti.

Skrive-tilgang er kanskje enda mer nyttig. Vi bruker det på CodePen å gjøre CRM-ish ting ved å sende data i en Airtable base med all den informasjonen vi trenger, og deretter bruke Airtable direkte for å visualisere ting og gjøre det vi ønsker.

Airtable alternativer?

Det pleide å være Fieldbook, men som ble stengt ned.

RowShare ser nifs lignende (selv om litt lysere på funksjoner), men det ser ikke ut som det har et API, så det er ikke helt passer regningen for at database/regneark gap som strekker seg over.

Zoho Skaperen har en API og interessant visualisering ting som er bygget, noe som faktisk ser ganske darn kule. Det ser ut som noen av deres markedsføring er basert rundt ideen om at hvis du trenger for å bygge en CRUD-app, kan du gjøre det med denne med null koding — og jeg tror de har rett i at det er en overbevisende selger.

Actiondesk ser interessant at det er i kategorien av en moderne ta på strømmen av regneark.

Mens det er koblet til en database i at det ser ut som det kan huke tak i data fra noe som MySQL eller PostgreSQL, det ser ikke ut som det har databasen-som å lese/skrive-Api-er.

Kan vi bare bruke Google-Ark?

Den største regneark-verktøy som er i himmelen er, selvfølgelig, Google, som det er ganske god, gratis, og er kjent. Det er mer som en port av Excel til nettleseren, slik at jeg kan argumentere for det er mer knyttet til arv av nummer-nerds enn det er alle sorter av fersk ta på et regneark eller lagring av data verktøyet.

Google Ark har et API. De tar det ganske alvorlig som det er i v4 og har en haug med dokumenter og veiledninger. Sjekk ut en praktisk liten tutorial om å skrive til det fra Slakk. Problemet, slik jeg forstår det, er at API-et er merkelig og komplisert og vanskelig, som Sengetøy selv. Ring meg en wimp, men denne quick start er et lite øye-vinduer.

Det ser ut som den mest overbevisende rute her, forutsatt at du ønsker å holde alle data i Google Ark og bruke den som en database, er Sheetsu. Det omhandler tilkobling/auth til ark på høykant, så gir du API endepunktene til data som er ren og velsmakende.

Pluss at det er noen interessante funksjoner, som gir deg en form UI for muligens enklere (eller flere offentlige) data entry enn du arbeider med regneark seg selv.

Det er også Sheetrock.js, en åpen kildekode bibliotek for å hjelpe ut med at API tilgang til et ark, men det har ikke vært berørt i et par år, så jeg er usikker på status der.

Jeg er ikke prøver å fortelle deg denne ideen helt erstatter tradisjonelle databaser.

For én ting, den relasjonelle delen av databaser som MySQL, er en super viktig aspekt som jeg ikke tror regneark alltid behandles spesielt godt.

Si at du har en ansatt-tabellen i databasen, og for hver rad i tabellen viser den avdelingen de jobber for.

ID-Navnet Avdeling
— — —
1 Chris Coyier Front-End Utvikler
2 Barney Butterscotch Menneskelige Ressurser

I et regneark, kanskje de department navn er bare strenger. Men i en database, i et visst omfang, er det antakelig ikke er smart. I stedet, du vil ha et annet bord av avdelinger, og relatere de to tabeller med en sekundærnøkkel. Det er akkurat det som er beskrevet i dette klassiske explainer dok:

For å finne navnet på en bestemt ansatt institutt, er det ikke behov for å sette navn på den ansattes avdeling i ansatte-tabellen. I stedet, de ansatte-tabellen inneholder en kolonne som holder avdelings ID-av den ansattes avdeling. Dette kalles en sekundærnøkkel til institutt bordet. En sekundærnøkkel refererer til en bestemt raden i tabellen som inneholder den tilsvarende primære tasten.

ID-Navnet Avdeling
— — —
1 Chris Coyier 1
2 Barney Butterscotch 2

ID-avdelingsleder
— — —
1 Front-End Utviklere Akanya Borbio
2 Menneskelige Ressurser Susan Snowrinkle

For å være rettferdig, regneark kan ha relasjonelle funksjoner for (Airtable gjør), men kanskje det ikke er en fundamental første-klasse statsborger som noen databaser behandle det.

Kanskje enda viktigere, databaser, i stor grad være åpen kildekode-teknologi, støttes av et stort økosystem av teknologi. Du kan være vert for PostgreSQL eller MySQL-database (eller hva alle de store database spillere er) på alle slags forskjellige hosting plattformer og maskinvare. Det er alle slags verktøy for å overvåke det, feste det, optimalisere det, og sikkerhetskopiere det opp. Pluss, hvis du er på langt nær å bryte inn i tusenvis av rader punkt skala, jeg tror et regneark har vært outscaled.

Ved å velge en proprietær rekke data er i stor grad for bekvemmelighet og fancy UX på en noe liten skala. Jeg kinda love det selv.