Benutzer-Werkzeuge

Webseiten-Werkzeuge


datenbank

Datenbank

Das Thema Datenbank kommt immer wieder auf, bei uns im Team14.

Zentraler Bestandteil unseres Arbeitsablaufes ist neben Seafile auch noch GIT.

An GIT gefällt mir besonders gut, dass man Änderungen durch ein DIFF sehr schön präsentiert bekommt.

Normalerweise sind Datenbanken in einem Binärformat abgelegt, was mit GIT leider gar nichts bringt.

Der Weg bisher war mit mehreren CSV-Dateien und einigen Python-Skripte. Doch so ganz zufrieden bin ich damit noch nicht.

Ich bin nun schon fast am Ziel angekommen…

Zielsetzung

  1. Datenquelle ist einfache CSV-Datei
  2. Änderungen in der Datenbank sollen per Diff leicht ersichtlich sein
  3. Die Daten sollen per LibreOffice Spread Sheet editierbar sein. Den Komfort von schnellem suchen, kopieren, sortieren, filtern möchte ich bei der täglichen Arbeit wriklich nicht missen.
  4. Formatierungen sollen erhalten bleiben.

Der Weg dorthin

Es gibt eine bestehende Datei Namens parts.csv.

Datenbank anlegen

Dazu machen wir eine neue HSQLDB Namens parts.odb, also eine LibreOffice Base Datenbank. Dabei erzeugen wir per SQL Befehle (Tools→SQL) eine entsprechende Tabelle:

Tabelle erzeugen

CREATE TEXT TABLE "Parts" (
	"InternalName" VARCHAR(20) PRIMARY KEY, 
	"PartType" VARCHAR(20), 
	"Subtype" VARCHAR(20), 
	"Manufacturer" VARCHAR(100), 
	"Manufacturer-PartName" VARCHAR(100), 
	"Description" VARCHAR(200), 
	"Package" VARCHAR(100), 
	"Distributor1" VARCHAR(100), 
	"OrderNumber1" VARCHAR(100), 
	"Distributor2" VARCHAR(100), 
	"OrderNumber2" VARCHAR(100), 
	"Container" VARCHAR(20), 
	"BoxName" VARCHAR(20), 
	"PiecesOnStock" INTEGER, 
	"KiCad-Symbol-Lib" VARCHAR(100), 
	"KiCad-Symbol-Part" VARCHAR(100), 
	"KiCad-Footprint" VARCHAR(100), 
	"Price" DECIMAL, 
	"PriceForQty" INTEGER
);

.

Verknüpfen mit der CSV-Datei

Dann wird die Tabelle wieder per SQL mit der CSV-Datei verknüpft:

SET TABLE "Parts" SOURCE "parts.csv;ignore_first=true;encoding=UTF-8;fs=\semi"; 

Dabei definiert fs=\semi den „field separator“ als Semikolon (Strichpunkt).

Datenbank Registrieren

Nun muss die neue Datenbank noch in LibreOffice registriert werden:

  • Tools→Options
  • OpenOffice Base
  • Databases
  • New
  • Browse
  • Datei parts.odb auswählen
  • OK

Sperad Sheet

Nun legen wir noch eine neue Datei parts-editor.ods an. In dieser Datei importieren wir nun die zuvor registrierte Datenbank/Tabelle mit Strg+Shift+F4. Hier kann man dann per Drag'n'Drop die Tabelle 'Parts' einfach in eine Zelle ziehen, und es erscheint die ganze Tabelle samt Tabellenkopf.

Und nun?

Das Problem ist nun, wie die Daten aus dem Spread-Sheet wieder zurück in die Datenbank kommen. Ist der Link zur Datenbank eine Einweg-Verbindung?

datenbank.txt · Zuletzt geändert: 2018/03/26 12:12 von karl