Die ganze Sache mit Tabellenkalkulationen als Datenbanken ist ziemlich cool

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Eine Tabellenkalkulation war schon immer eine starke (wenn auch ziemlich wörtliche) Analogie für eine Datenbank. Eine Datenbank hat Tabellen, was wie eine einzelne Tabellenkalkulation ist. Stellen Sie sich eine Tabellenkalkulation zur Verfolgung von Zu-/Absagen für eine Hochzeit vor. Oben stehen Spaltentitel wie Vorname, Nachname, Adresse und Zusage?. Diese Titel sind auch Spalten in einer Datenbanktabelle. Dann ist jede Person in dieser Tabellenkalkulation buchstäblich eine Zeile, und das ist auch eine Zeile in einer Datenbanktabelle (oder ein Eintrag, ein Element oder sogar ein Tupel, wenn Sie wirklich ein Nerd sind).

Es ist immer häufiger geworden, dass dies keine Analogie sein muss. Wir können eine Tabellenkalkulations-Benutzeroberfläche buchstäblich als unsere tatsächliche Datenbank verwenden. Das ist bedeutsam, da es nicht nur darum geht, Datenbankdaten als Tabellenkalkulation anzuzeigen, sondern Tabellenkalkulations-ähnliche Funktionen zusammen mit datenbankähnlichen Funktionen zu erstklassigen Funktionen der Anwendung zu machen.

Bei einer Tabellenkalkulation geht es vielleicht darum, das Ganze zu betrachten und Dinge auf diese Weise zu verstehen. Daten durchsuchen, sortieren, eingeben und bearbeiten direkt in der Benutzeroberfläche und visuelle Ausgaben erstellen, die nützlich sind.

Bei einer Datenbank schaut man nicht wirklich direkt darauf – man fragt sie ab und nutzt die Ergebnisse. Die Eingabe und Bearbeitung von Daten erfolgt über Code und APIs.

Das soll nicht heißen, dass man eine Datenbank nicht direkt ansehen kann. Datenbanktools wie Sequel Pro (und viele andere!) bieten eine Schnittstelle, um Tabellen in einem Tabellenkalkulations-ähnlichen Format anzuzeigen.

Das Schöne ist, dass die Idee von Tabellenkalkulationen und Datenbanken koexistieren kann und das Beste aus beiden Welten gleichzeitig bietet. Zumindest in einem bestimmten Umfang.

Wir haben bereits früher auf CSS-Tricks über Airtable gesprochen, und es ist ein glänzendes Beispiel dafür.

Airtable nennt sie Bases, und obwohl Sie die Daten darin auf vielfältige Weise anzeigen können (einen Kalender! Eine Galerie! Ein Kanban!), ist die primäre Ansicht vielleicht die einer Tabellenkalkulation.

Wenn Sie mit Airtable nur als Tabellenkalkulation arbeiten, ist es immer noch sehr gut. Die Benutzeroberfläche ist sehr gut gemacht. Dinge wie Filtern und Sortieren fühlen sich wie echte erstklassige Bürger an, auf eine Weise, dass es fast seltsam ist, dass andere Tabellenkalkulationstechnologien das nicht haben. Selbst die Feldtypen fühlen sich praktisch und modern an.

Plus mit all den verschiedenen Ansichten in einer Base und noch cooler, all die „Blöcke“, die sie anbieten, um die Ansichten mehr Dashboard-artig zu machen, ist es ein mächtiges Werkzeug.

Aber der Punkt, den ich hier machen möchte, ist, dass Sie Ihre Airtable-Base auch wie eine Datenbank verwenden können, da Sie automatisch Lese-/Schreib-API-Zugriff auf Ihre Base haben.

So cool, dass diese API-Dokumente Daten aus Ihrer eigenen Base verwenden, um die API zu demonstrieren.

Ich habe darüber in meinem Artikel How To Use Airtable as a Front End Developer mehr gesprochen. Dieser API-Zugriff ist aus Sicht des Lesens von Daten großartig, um Dinge wie die Verwendung als Datenquelle für einen Blog zu tun. Robin hat Daten eingefügt, um seine eigene React-gesteuerte Schnittstelle zu erstellen. Ich mag, dass es eine GraphQL-Schnittstelle gibt, wenn auch eine von Drittanbietern.

Der Schreibzugriff ist wohl noch nützlicher. Wir nutzen ihn bei CodePen für CRM-ähnliche Dinge, indem wir Daten in eine Airtable-Base mit allen benötigten Informationen senden und dann Airtable direkt verwenden, um Dinge zu visualisieren und die Dinge zu tun, die wir wollen.

Airtable-Alternativen?

Früher gab es Fieldbook, aber das wurde eingestellt.

RowShare sieht seltsam ähnlich aus (wenn auch etwas funktionsärmer), aber es scheint keine API zu haben, sodass es nicht ganz die Lücke zwischen Datenbank und Tabellenkalkulation schließt. Update: Offenbar hat es das, ich konnte nur keinen Link dazu finden, als ich die Seite als ausgeloggter Benutzer erkundet habe.

Zoho Creator hat eine API und interessante Visualisierungsfunktionen, was ziemlich cool aussieht. Es sieht so aus, als ob ein Teil ihres Marketings auf der Idee basiert, dass Sie mit diesem Tool eine CRUD-Anwendung ohne Programmierung erstellen können – und ich denke, sie haben Recht, dass das ein überzeugendes Verkaufsargument ist.

Actiondesk sieht interessant aus, da es in die Kategorie einer modernen Interpretation der Leistungsfähigkeit von Tabellenkalkulationen fällt.

Während es mit einer Datenbank verbunden ist, da es Daten von etwas wie MySQL oder PostgreSQL abrufen kann, scheint es keine datenbankähnlichen Lese-/Schreib-APIs zu haben.

Können wir einfach Google Sheets verwenden?

Das größte Tabellenkalkulationswerkzeug am Himmel ist natürlich das von Google, da es ziemlich gut, kostenlos und vertraut ist. Es ist eher ein Port von Excel in den Browser, daher könnte ich argumentieren, dass es stärker mit dem Erbe von Zahlen-Nerds verbunden ist als mit einer neuen Herangehensweise an Tabellenkalkulationen oder Datenspeicher.

Google Sheets hat eine API. Sie nehmen sie ziemlich ernst, da sie in v4 ist und viele Dokumente und Anleitungen hat. Schauen Sie sich ein praktisches kleines Tutorial an, wie Sie von Slack aus hineinschreiben können. Das Problem, soweit ich verstehe, ist, dass die API seltsam, kompliziert und schwierig ist, wie Sheets selbst. Nennen Sie mich einen Weichei, aber dieser Quickstart ist ein wenig augenlindernd.

Was hier die überzeugendste Route zu sein scheint, vorausgesetzt, Sie möchten alle Ihre Daten in Google Sheets behalten und es wie eine Datenbank verwenden, ist Sheetsu.

Ups. Sheetsu ist tot. Richard O’Dwyer schrieb mir, dass er einen alternativen Dienst hat: sheet2api. Ich werde den Screenshot und die Links unten damit ersetzen.

Es kümmert sich um die Verbindung/Authentifizierung zum Blatt auf seiner Seite und bietet dann API-Endpunkte zu den Daten, die sauber und verdaulich sind.

URL zur API davon und die Dokumentation.

Außerdem gibt es einige interessante Funktionen, wie z. B. die Bereitstellung einer Formular-Benutzeroberfläche für möglicherweise einfachere (oder öffentlichere) Dateneingaben, als sich mit der Tabellenkalkulation selbst zu befassen.

Es gibt auch Sheetrock.js, eine Open-Source-Bibliothek, die bei der API-Anbindung an ein Blatt hilft, aber sie wurde seit einigen Jahren nicht mehr angefasst, daher bin ich mir über den Status dort unsicher.

Ich versuche nicht zu sagen, dass diese Idee traditionelle Datenbanken vollständig ersetzt.

Zum einen ist der relationale Teil von Datenbanken wie MySQL ein sehr wichtiger Aspekt, den Tabellenkalkulationen meiner Meinung nach nicht immer besonders gut handhaben.

Sagen wir, Sie haben eine Mitarbeitertabelle in Ihrer Datenbank, und für jede Zeile in dieser Tabelle wird die Abteilung aufgeführt, für die sie arbeiten.


ID  Name                  Department
--  --                    --
1   Chris Coyier          Front-End Developer
2   Barney Butterscotch   Human Resources   

In einer Tabellenkalkulation sind diese Abteilungsnamen vielleicht nur Zeichenfolgen. Aber in einer Datenbank ist das in gewissem Umfang wahrscheinlich nicht klug. Stattdessen hätten Sie eine weitere Tabelle mit Abteilungen und verknüpfen die beiden Tabellen mit einem Fremdschlüssel. Das ist genau das, was in diesem klassischen Erklärungsdokument beschrieben wird.

Um den Namen der Abteilung eines bestimmten Mitarbeiters zu ermitteln, ist es nicht notwendig, den Namen der Abteilung des Mitarbeiters in die Mitarbeitertabelle einzufügen. Stattdessen enthält die Mitarbeitertabelle eine Spalte mit der Abteilungs-ID der Abteilung des Mitarbeiters. Dies wird als Fremdschlüssel zur Abteilungstabelle bezeichnet. Ein Fremdschlüssel verweist auf eine bestimmte Zeile in der Tabelle, die den entsprechenden Primärschlüssel enthält.


ID  Name                  Department
--  --                    --
1   Chris Coyier          1
2   Barney Butterscotch   2 

ID  Department            Manager    
--  --                    --
1   Front-End Developers  Akanya Borbio
2   Human Resources       Susan Snowrinkle

Um fair zu sein, Tabellenkalkulationen können auch relationale Funktionen haben (Airtable tut es), aber vielleicht ist es kein grundlegender erstklassiger Bürger, wie es einige Datenbanken damit behandeln.

Wichtiger ist vielleicht, dass Datenbanken, die größtenteils Open-Source-Technologie sind, von einem riesigen Technologie-Ökosystem unterstützt werden. Sie können Ihre PostgreSQL- oder MySQL-Datenbank (oder was auch immer die großen Datenbankanbieter sind) auf verschiedenen Hosting-Plattformen und Hardware hosten. Es gibt alle Arten von Werkzeugen zur Überwachung, Sicherung, Optimierung und Sicherung. Außerdem, wenn Sie sich dem Bereich von Zehntausenden von Zeilen nähern, denke ich, dass eine Tabellenkalkulation überholt ist.

Die Wahl eines proprietären Daten-Hosts dient größtenteils der Bequemlichkeit und der schicken Benutzererfahrung in einem gewissen kleinen Umfang. Ich liebe es trotzdem.