GlobalType™

Lars Kähler

Aktiver Benutzer
Beiträge
35
Hallo!

GlobalType™ ist ein Typografieprojekt, ich selbst bin Typograf (gelernter Schriftsetzer und Druckingenieur). Mir geht es darum, die Schriftgeschichte der Völker auf dieser Erde an Hand eines Globus mit einer nach innen weisenden Zeitachse darzustellen. Die dahinter stehende Information soll aus einer entsprechend angepassten Datenbank in das spätere Modell fließen. Die Grundlage dafür ist eine sehr umfangreiche Schriftartensammlung vorwiegend westeuropäischer Schriften.

Dazu gibt es eine inzwischen überarbeitete Fassung der Website unter

<www.global-type.com>

. Hier ist allerdings weder von der Datenbank noch von dem Weltmodell etwas zu sehen. Daher meine Frage an Euch: Wie geht man an so eine Sache heran? Ich habe ein Buch über MySQL gelesen, ich bin nicht wirklich doof, habe aber auch keine 6.000,– €, um das »mal eben« machen zu lassen.

Da es sich bei GlobalType™ ohnehin um ein Open-Source-Projekt handelt, veröffentliche ich hier einmal die Datenbank und das ERM:
 

Anhänge

Werbung:
Also bei konkreten Problemen helfe ich sicher gern aber MSSQL kommt sicher nicht zum Einsatz (würde ich auch nicht empfehlen) und ansonsten kann ich nur TSQL. Der meiste Aufwand wird aber PHP sein oder was immer Ihr für die Webseite verwendet.
 
Das Thema hatten wir doch Mitte März schon mal, oder?

Das ist richtig. Ich war ja auch in der Zwischenzeit bei einer Kieler Agentur gewesen, die die Kalkulation für den Auftrag aber leider abgelehnt hat, weil er ihnen »zu komplex« erschien. Sie haben mir geraten, mich an eine Universität zu wenden. Die PHP-Kleinigkeiten, deretwegen ich mich hier gemeldet hatte, haben sie jedoch bereinigt, so dass sich die Website jetzt meiner Meinung nach sehen lassen kann.
 
Nun, du hast also schon das Front-End, du hast ein ERD und du hast Daten. Vermutlich hast du auch eine Datenbank nach dem ERD, was genau fehlt denn oder woran scheiterts?
 
Ja, das ist richtig. Ich nutze Sequel Pro in der Version 1.0.2. Vor zehn Jahren, bei Beginn der Idee, war es der Vorläufer Cocoa MySQL gewesen. Betriebssystem ist Mac OS X 10.7.5. Das ERD habe ich einmal angehängt, wir hatten es »ERM« genannt. Ebenfalls angehängt ist die zu zerlegende Ursprungsdatenbank im Excel-Format.

Das konkrete Problem ist jetzt der Import der Ausgangs-Datenbank, da hapert’s noch.

Prozedur:
1. MySQL per Systemeinstellungen gestartet.
2. Sequel Pro mit User »root« und *ohne* PW gestartet (und dass soll so in Ordnung sein?)
3. Eine leere Datenbank angelegt (die dann jedesmal mit einem neuen Namen benannt werden muss).
4. Der Import einer csv-Datei aus MS Excel schlug bisher fehll. D.h., hier komme ich erstmal nicht voran.
 

Anhänge

Zuletzt bearbeitet:
Also scheitert der Import der Daten (CSV Format) in MySQL. Da ich kein MySQL nutze kann ich jetzt nicht auf Erfahrungen verweisen, das ganze dürfte aber nicht schwer sein. Hier mal ein Beispiel:
https://code.dedu.ch/2011/07/csv-file-direkt-in-mysql-importieren/
Wenn es dann immer noch scheitert, auf jedenfall die Fehlermeldung posten, auch wenn die bei MySQL fürn Arsch sind. Welchen MySQL Client nutzt du um auf der DB zu arbeiten?
 
Mein Hamburger Freund hat mir eine neue *.csv aus MS Excel heraus zugeschickt. Er meinte, dass es damit funktionieren müsse. Immerhin ist Sequel Pro jetzt nicht gleich danach abgestürzt, müht sich aber jetzt schon über eine halbe Stunde einen ab. Nach dem Aktivitätsmonitor zu schließen, ist einer der beiden Professoren auf Vollast beschäftigt, der andere räkelt sich so vor sich hin. In LibreOffice dauert es ca. drei Sekunden, die entsprechende Datei zu öffnen.
 
Sollten die Daten aus der CSV nicht in MySQL importiert werden? Wiso muss Sequel Pro (das ich nicht kenne) diese Datei überhaupt öffnen?
 
Mein Hamburger Freund hat mir eine neue *.csv aus MS Excel heraus zugeschickt. Er meinte, dass es damit funktionieren müsse. Immerhin ist Sequel Pro jetzt nicht gleich danach abgestürzt, müht sich aber jetzt schon über eine halbe Stunde einen ab. Nach dem Aktivitätsmonitor zu schließen, ist einer der beiden Professoren auf Vollast beschäftigt, der andere räkelt sich so vor sich hin. In LibreOffice dauert es ca. drei Sekunden, die entsprechende Datei zu öffnen.


Wie lange braucht das? Ich hab es mal probiert:

Code:
test=# create table global_type (c1 text, c2 text, c3 text, c4 text, c5 text, c6 text, c7 text, c8 text);
CREATE TABLE
Time: 19,274 ms
test=*# \copy global_type from '/home/kretschmer/muell/Test.csv' csv quote '"' delimiter ',';
Time: 151,069 ms
test=*# select count(*) from global_type ;
 count
-------
 31380
(1 row)

Also, ich hab eine Tabelle mit 8 TEXT-Feldern angelegt, vorher das Zip im Ornder muell (sorry) ausgepackt und dann via COPY in die Tabelle eingelesen.Das dauerte grad mal 151 Millisekunden, das kann man nicht mal händisch mit einer Uhr stoppen. Mir unbegreiflich, was Du da machst.

Ein Blick in die Tabelle:

Code:
test=*# select * from global_type offset 10 limit 5;
  c1  |  c2  |  c3  |  c4  |  c5  | c6 | c7 |  c8
--------------+-----------------------------+----------+------+------------------+----+----+------
 20th Century | Bold Italic  | Sol Hess | 1937 | Lanston Monotype | VI |  | B, F
 20th Century | Extra Bold Condensed  |  |  | Lanston Monotype | VI |  | B, F
 20th Century | Extra Bold Italic  | Sol Hess | 1937 | Lanston Monotype | VI |  | B/F
 20th Century | Extra Bold Condensed Italic | Sol Hess |  | Lanston Monotype | VI |  | B
 20th Century | Ultra Bold  | Sol Hess | 1941 | Lanston Monotype | VI |  | B/F
(5 rows)

Selbst wenn man da die Spalte c4 als INT gemacht hätte und einen Constraint auf gültige Jahre gesetzt oder so wäre das in der Laufzeit nicht spürbar geworden.

Also irgendwas läuft da massiv falsch bei Dir...
 
Glaube ich gern. Übrigens gibt es Dinge, die ich sehr gut konnte, wie zum Beispiel Layouten oder Lego, aber in puncto Datenbanken bin ich leider ein Greenhorn. Ich habe vor acht Jahren ein einführendes Buch gelesen, gewisse Konzepte sind mir verständlich, andere werde ich nicht brauchen auf meinem Weg.

Meine Aufgabe ist es, die vorhandene DB aus nur einer Tabelle nach dem vorliegenden Schema in 25 Entitäten zu zerlegen, und das muss ich ja wohl mit entsprechend formulierten Queries tun?
 
Werbung:
Dann nehme ich mal an deine jetzige Tabelle hat einige Redundanzen. Wenn du jetzt alle Tabellen so anlegst wie du es haben willst (möglist normalisiert) kannst du Abfrageergebnisse auf deine Quelltabelle direkt in deine neuen Tabellen schreiben.
Code:
INSERT INTO zieltabelle (b,c)
SELECT   b,c
FROM   quelltabelle
Aber erstmal würde ich die Ursprungsdaten 1:1 in die Qeulltabelle importieren. Alles weitere gibt sich dann.
 
Zurück
Oben