Hilfe bei DB-Design - Fragebogen

SilverUser

Neuer Benutzer
Beiträge
3
Hi Leute,

ich würde gerne eine Datenbank designen (mit dieser Website: http://ondras.zarovi.cz/sql/demo/ ), weiß aber nicht genau wie ich das anstellen soll.

Das Ganze geht davon aus, dass ich einen Bewertungs-Fragebogen habe, welcher folgendermaßen aufgebaut ist:

Es gibt eine Überschrift (z.B. Design), dann verschiedene Zeilen, deren Bewertung von oben nach unten immer schlechter wird (z.B. oberste Zeile: 'sieht sehr gut aus' ; unterste Zeile: 'sieht sehr schlecht aus'). Davon jedoch gibt es mehrere Spalten (z.B. Produkt 1 , Produkt 2, ... ).

Problem: Ich weiß nicht genau, wie das oben genannte Schema in dem SQL-Designer aussehen soll. Kann mir da einer helfen?

Gruß
 
Werbung:
Hi Leute,

ich würde gerne eine Datenbank designen (mit dieser Website: http://ondras.zarovi.cz/sql/demo/ ), weiß aber nicht genau wie ich das anstellen soll.

Das ist ein Tool, um Tabellen mal graphisch zu entwerfen. Aber nicht das Layout, wie es später in der Anwendung auf dem Bildschirm ist, sondern rein logisch, wie Tabellen aufgebaut sind, welche Beziehungen es unter den Tabellen es gibt, welche Datentypen etc.

Das Ganze geht davon aus, dass ich einen Bewertungs-Fragebogen habe, welcher folgendermaßen aufgebaut ist:

Es gibt eine Überschrift (z.B. Design), dann verschiedene Zeilen, deren Bewertung von oben nach unten immer schlechter wird (z.B. oberste Zeile: 'sieht sehr gut aus' ; unterste Zeile: 'sieht sehr schlecht aus'). Davon jedoch gibt es mehrere Spalten (z.B. Produkt 1 , Produkt 2, ... ).

Problem: Ich weiß nicht genau, wie das oben genannte Schema in dem SQL-Designer aussehen soll. Kann mir da einer helfen?

Gruß

Du scheinst Anfänger in Sachen Datenbanken zu sein. Ich finde es (das ist jetzt meine ganz private Meinung) nicht gut, mit solchen Tools anfangen zu wollen, das zu lernen.
Du solltest erst mal lernen, was man z.B. unter 'Normalisierung' versteht, und Du solltest lernen, mit elementaren SQL-Befehlen umzugehen.
Auch ganz wichtig: wie man Tabellen verknüpft, z.B. via FOREIGN KEYS.

Um z.B. eine DB-Struktur aufzubauen, um für beliebig viele Produkte je eine aus (im Beispiel 3) möglichen Beurteilungen auszuwählen und das zu speichern (sowie das Datum, wann die Bewertung gespeichert wurde) könnte man folgende SQL-Befehle anwenden.

Code:
test=# create table bewertungsnoten(id int primary key, bewertung text);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "bewertungsnoten_pkey" for table "bewertungsnoten"
CREATE TABLE
test=*# create table produkte (id serial primary key, name text);
NOTICE: CREATE TABLE will create implicit sequence "produkte_id_seq" for serial column "produkte.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "produkte_pkey" for table "produkte"
CREATE TABLE
test=*# create table bewertungen(produkt int references produkte, datum date default current_date, note int references bewertungsnoten);
CREATE TABLE
test=*# insert into bewertungsnoten values (1,'sehr gut');
INSERT 0 1
test=*# insert into bewertungsnoten values (2,'geht so');
INSERT 0 1
test=*# insert into bewertungsnoten values (3,'durchgefallen');
INSERT 0 1
test=*# insert into produkte values (1,'Taschenlampe');
INSERT 0 1
test=*# insert into produkte values (2,'Lasagne');
INSERT 0 1
test=*# insert into produkte values (3,'Socken');
INSERT 0 1
test=*#
test=*#
test=*# insert into bewertungen(produkt,note) values (1,1);
INSERT 0 1
test=*# insert into bewertungen(produkt,note) values (2,3);
INSERT 0 1
test=*# insert into bewertungen(produkt,note) values (3,2);
INSERT 0 1
 
 
test=*# select p.name, n.bewertung,b.datum from bewertungen b left join produkte p on b.produkt=p.id left join bewertungsnoten n on b.note=n.id;
 
     name     |   bewertung   |   datum
--------------+---------------+------------
 Taschenlampe | sehr gut      | 2013-03-08
 Lasagne      | durchgefallen | 2013-03-08
 Socken       | geht so       | 2013-03-08
(3 rows)

Das sind lediglich 3 SQL-Befehle: CREATE TABLE, INSERT INTO und SELECT. Das kann man lernen, ist nicht schwer. Ich mache sowas erheblich schneller direkt in einer SQL-Konsole als ich das auf so einer Website umständlich malen würde.

(meine Eingaben sind immer hinter dem test= *#, die anderen Zeilen sind Ausgaben der DB)

Dinge wie Überschriften und so sind eine ganz andere Baustelle: das ist dann die Applikation, die die DB nutzt.


Andreas
 
Hi Andreas,

generell verstehe ich deinen Einwand, dass ich direkt in die 'fortgeschrittene' Materie einsteigen will. Aber so wie ich den SQL-Designer verstehe, erscheint es mir ja nur als simples Tool um Datenbeziehungen zu bilden. Generell ist das ja auch das, was ich will: Datenbeziehungen zwischen verschiedenen Elementen bilden.

Im Prinzip will ich nur die Basics wissen.

Gruß
 
Generell ein netter ERD Editor, auch wenn er z.B. doppelte Tabellennamen zuläßt :)

Ich entwickle neue DBs auch gerne nur als ERD und male solange rum bis mir die Struktur gefällt. Aber jeder der DBs entwickelt muss zwingend das relationale Datenschema verstehen und dabei hilft eben die Normalisierung. Wenn du diese beiden Wikipedia Artikel verstanden hast dann kannst du auch ein ERD Zeichnen.

http://de.wikipedia.org/wiki/Relationale_Datenbank
http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) (bis 3. NF)

Die Normalisierung ist sehr theoretisch, aber bei wirklich komplexen Strukturen sinnvoll. Bei einer simplen DB reicht es aber zu wissen, wie es funktioniert.
 
Werbung:
Zurück
Oben