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.

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.

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.
Keine Server- oder DB-Wartung. Einfache IAM- und Verschlüsselung. Die Replikation von SaaS-Daten in Google Sheets ist absolut sinnvoll. Flatly.io macht Google Sheets und Excel Online einfach als Datenspeicher nutzbar, ohne Programmierung.
(Offenlegung: Ich bin der Gründer.)
Tatsächlich gibt es keinen Unterschied zwischen der Verwendung einer Tabellenkalkulation als Datenbank und der Verwendung einer Datenbank als Datenbank (solange Sie nur eine einzige Tabelle verwenden). Raten Sie mal, wie die Tabellenkalkulation die Daten speichert? Richtig, in einer Datenbank. Sie verwenden also eine Datenbank mit einer API und einem Frontend – was für herkömmliche Datenbanken gleichermaßen gilt.
Datenbanken leisten jedoch viel mehr als nur das Speichern und Abrufen von Daten. Zum Beispiel stellen sie sicher, dass eine Schreiboperation niemals nur teilweise durchgeführt wird (aufgrund von Abstürzen zum Beispiel), sie verfügen über ein ziemlich ausgeklügeltes System im Hintergrund, um ein intelligentes Caching von häufig abgefragten Tabellen und eine effiziente Suche in der Datenbank zu gewährleisten und vieles mehr.
Ich sehe wirklich keinen Vorteil darin, eine Tabellenkalkulation anstelle einer echten Datenbank zu verwenden.
Wenn Sie Tabellenkalkulationen verwenden, verwenden Sie immer noch Datenbanken – nur schlechte (für den Zweck).
Als zweiter Hinweis: Wenn Sie einen Drittanbieter-Tabellenservice nutzen, stellen Sie besser sicher, dass Ihr Kontakt mit dem Anbieter die Privatsphäre Ihrer Benutzer ausreichend gewährleistet (Google Sheets ist mit ziemlicher Sicherheit ein No-Go).
Das bedeutet wahrscheinlich, dass die meisten kostenlosen Tabellenservices vom Tisch sind, zumindest wenn Sie Ihren Service in der EU anbieten möchten (und infolgedessen die DSGVO einhalten müssen) oder sich um Ihre Benutzer kümmern.
Es gibt auch Coda (https://coda.io/). Es scheint sehr vielversprechend zu sein. Ich benutze es bereits für meine persönliche Organisation und kleine Projekte.
Hallo Chris – Ich bin von Beruf MSSQL-Entwickler – aber überraschenderweise hasse ich diese Idee nicht :) Ich könnte mir vorstellen, dass sie besonders nützlich für Daten in einer Webanwendung ist, die nicht über die Benutzeroberfläche aktualisiert wird: Referenztabellen usw. Dies würde es einer nicht-technischen Person erleichtern, diese Daten bei Bedarf zu aktualisieren, anstatt jemanden zu benötigen, der SQL kennt, nur um grundlegende Aktualisierungen vorzunehmen. Guter Artikel.
Ich gehe dieses Problem in gewisser Weise von der entgegengesetzten Seite an. Ich habe relativ statische CSVs unterschiedlicher Größe (200-6000 Einträge) und frage mich, ab wann ich sie in eine DB umwandle. Der Online-Tabellenansatz scheint eine gute Option zu sein, die man in Betracht ziehen kann.
Gute Übersicht über das verfügbare Angebot. HubSpot CMS hat auch etwas Ähnliches https://knowledge.hubspot.com/articles/kcs_article/cos-general/how-to-edit-hubdb-tables
Ein Nachteil von HubDB ist, dass Sie Zeilen nicht mit einem Formular aufrufen können, wie Sie es in Airtable können.
Fantastischer Artikel. Sehr interessant zu sehen, wie Menschen alternative Methoden der Datenspeicherung nutzen. An der University of York haben wir Google Fusion Tables (ja, auch wenn es ein Beta-Produkt war!) als schnelle Alternative zur Speicherung einfacher, tabellarischer Daten verwendet.
Wenn jemand daran interessiert ist, Google Sheets für sehr einfache Datenspeicherung zu verwenden, ohne den Aufwand für die Authentifizierung, dann können Sie Daten als JSON mit einem praktischen Dienstprogramm lesen, das ich hier geschrieben habe: https://robkendal.co.uk/reading-google-sheets-data-using-javascript/
Ich konfiguriere und fülle meine eigene JavaScript-Tabellenlösung mit dem Ergebnis des Parsens und Ausführens von SQL-Anweisungen auf dem Server mit PHP. Eine Anweisung kann so aussehen:
SELECT id,ddc as DDC , ddcgroup as Beschreibung FROM $gf->table order by ddc;
Der resultierende Satz von Zeilen und eine Reihe von Metadaten wird dann an den Client übergeben, um in meiner Tabellenkalkulations-ähnlichen Tabelle präsentiert zu werden, wo ich die Daten in Echtzeit manipulieren kann.
Das ist sehr praktisch.
Ja! Ich arbeite schon eine Weile mit etwas, das Ihnen gefallen könnte. Es ist ein selbst gehosteter Spreadsheet-CMS/Datenbankeditor für MySQL-Datenbanken. Eine Art Mischung aus MySQL und Airtable, aber mit dem Ziel, es einfach zu halten.
Ich habe es gerade öffentlich gemacht https://github.com/jenstornell/squares Sehen Sie sich den Screenshot an und Sie werden die Idee verstehen. Es ist immer noch in einem Minenfeld/Beta-Stadium, aber es hat die meisten Grundlagen bereits vorhanden.
Der Link ist tot :(
Databox brennt gerade, und raten Sie mal, was ihre „am meisten angefragte“ Datenquellenintegration ist? :)
https://databox.com/google-sheets-integration
Um pedantischer zu sein, könnten Sie noch einmal auf die „Mitarbeiter“-Tabelle verweisen, anstatt den Namen des Managers in der „Abteilungen“-Tabelle zu haben :)
Ich habe eine HTML/PHP-Website für die Messe meines Unternehmens erstellt und verwende JSON, um Daten aus einem veröffentlichten Google Sheet zu ziehen und dann mit CSS zu stylen… es funktioniert ziemlich gut für das, wofür ich es verwenden muss. Ich glaube, ich habe die ursprüngliche Idee irgendwo auf stackexchange.com gefunden.
Die Verwendung von Tabellenkalkulationen als Ersatz für eine Datenbank scheint eine schreckliche Idee zu sein. Es ist selten, dass Sie nur eine einzige Tabelle in einer App/Website benötigen, wenn Sie eine DB verwenden, aber die Verwendung von Tabellenkalkulationstabellen stellt sicher, dass Sie eine schlechte Leistung bei Tabellenverknüpfungen haben, da es kein Konzept von Tabellenindizes zum Verknüpfen gibt. Ebenso gibt es keine solchen Indizes zum Suchen, sodass dies einen weiteren Leistungsengpass darstellt.
Dann haben Sie weitere Leistungsprobleme, da Sie bei jeglicher Art von Spaltentyp-Hinting stark eingeschränkt sind. Tatsächlich ist es realistisch unmöglich, dass Tabellenspalten eine Mischung aus Zeichenfolgen, Zahlen, Daten, Formeln enthalten, bei denen Sie den Datentyp einer Spalte nicht realistisch festlegen können.
Funktionell verlieren Sie Transaktionen, die sicherstellen können, dass alle Änderungsabfragen als Satz abgeschlossen werden oder gar nicht, anstatt teilweise modifizierte Abfragen, die zu einem fehlerhaften Datensatz führen können. Schließlich verlieren Sie einige sehr leistungsstarke Funktionen, die in den meisten Datenbanken integriert sind; keine gespeicherten Prozeduren zum Schutz vor bösartigen Abfragen, sodass die gesamte Logik in Ihrer Anwendung repliziert werden muss.
Es mag einige Anwendungsfälle für Tabellenkalkulationen als Datenbanken geben, aber ich kann mir keinen einzigen vorstellen.
Neuerer Spieler: https://stackby.com/