Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

procmail + change subject, w2ksp4.exe download, /proc/kallsyms format, sqldatasource dal, wwwxxxenden, convert raid5 to raid 10 mdadm, apache force chunked, nrao wwwxxx, xxxxxdup, procmail change subject header

Links

XODOX
Impressum

#1: Tab-Design-Problem: 300 Spalten!

Posted on 2008-01-30 15:20:08 by Ingo Haase

Hallo

Ich bin bei der Planung einer DB-Tabelle.

Problemstellung:
Gespeichert werden Daten aus der Werkstoffpr=FCfung.
Eine Probe (ein Werkst=FCck) wird auf verschiedene Parameter
gepr=FCft,z.B.

Pr=FCfung Ma=DFhaltigkeit: [L=E4nge, Breite, H=F6he, Pr=FCfer, Pr=FCfdatum]
Pr=FCfung Dichte: [Einwaage, Auswaage, Pr=FCftemperatur, Pr=FCfer,
Pr=FCfdatum]
Pr=FCfung Chemie: [Chlorid, Blindwert_Cl, Sulfat, Kohlenstoff, Natrium,
Diesunddas ]
und 17 weitere festgelegte Pr=FCfungen!

D.h. eine Probe kann bis zu 20 Pr=FCfungen unterzogen werden, meist sind
es aber deutlich weniger, je nach Fragestellung. Jede einzelne Pr=FCfung
besteht aus 5-15 Parametern. Die Beziehungen Probe->Pr=FCfung ist immer
eindeutig, eine Probe kann nur genau eine Dichte usw. haben.


Wie soll sowas in einer DB bzw. Tabelle abgebildet werden?

Alles in eine Tabelle? Das w=E4re am einfachsten, g=E4be aber eine Tabelle
mit an die 300 Spalten, wovon die meisten wohl NULL-Werte h=E4tten. Das
ist sehr unsch=F6n, widerspricht aber nicht unbedingt den
Normalisierungsregeln. Vorne die ProbenID, und dann hintereinander weg
die Pr=FCfwerte.
Oder jede Pr=FCfung in eine eigene Tabelle mit 1:1-Beziehungen zur
Probe? Geht das =FCberhaupt? Wie sieht die dann aus und wie fragt man
das ab? 20 1:1 Beziehungen hintereinander?

Ich brauch Hilfe.

Ingo Haase

Report this message

#2: Re: Tab-Design-Problem: 300 Spalten!

Posted on 2008-01-30 16:15:35 by Siegfried Schmidt

Hallo Ingo,

> D.h. eine Probe kann bis zu 20 Prüfungen unterzogen werden, meist sind
> es aber deutlich weniger, je nach Fragestellung. Jede einzelne Prüfung
> besteht aus 5-15 Parametern. Die Beziehungen Probe->Prüfung ist immer
> eindeutig, eine Probe kann nur genau eine Dichte usw. haben.
>
>
> Wie soll sowas in einer DB bzw. Tabelle abgebildet werden?

Wenn das Schema die Tendenz zur gelegentlichen Änderung/Erweiterung hat,
dann gleich dynamisch abbilden als M:N-Beziehung mit Wert zwischen Probe
und Prüfung/Parameter.

Dabei je nach Bedarf Werte mit Triggern auf 1:0/1 verriegeln oder die
Beziehungstabelle gleichzeitig als Eingabe/Änderungshistorie laufen
lassen.

> wie fragt man
> das ab? 20 1:1 Beziehungen hintereinander?

Die Abfrage wäre ein zweifacher Join.


Siegfried
--
http://www.schmidt.ath.cx

Report this message

#3: Re: Tab-Design-Problem: 300 Spalten!

Posted on 2008-01-30 16:16:50 by Daniel Fischer

Ingo Haase!

> Oder jede Prüfung in eine eigene Tabelle mit 1:1-Beziehungen zur
> Probe? Geht das überhaupt?

Ja, eine Tabelle für Daten zu den Proben, sowie eine Tabelle für jede
Prüfung, mit ID der Probe als gemeinsamem Schlüssel.

> Wie sieht die dann aus und wie fragt man
> das ab? 20 1:1 Beziehungen hintereinander?

Du kannst auch alle zusammenjoinen. Dann sieht das Ergebnis wieder
so aus wie vorher, aber du hast die Daten wenigstens ordentlich
aufgeräumt.

Bauchst du tatsächlich als Ergebnis immer *alle* Prüfungen?


Gruß
Daniel

Report this message

#4: Re: Tab-Design-Problem: 300 Spalten!

Posted on 2008-01-30 16:21:46 by Thomas Rachel

Ingo Haase schrieb:
> Hallo
>
> Ich bin bei der Planung einer DB-Tabelle.
>
> Problemstellung:
> Gespeichert werden Daten aus der Werkstoffprüfung.
> Eine Probe (ein Werkstück) wird auf verschiedene Parameter
> geprüft,z.B.
>
> Prüfung Maßhaltigkeit: [Länge, Breite, Höhe, Prüfer, Prüfdatum]
> Prüfung Dichte: [Einwaage, Auswaage, Prüftemperatur, Prüfer,
> Prüfdatum]
> Prüfung Chemie: [Chlorid, Blindwert_Cl, Sulfat, Kohlenstoff, Natrium,
> Diesunddas ]
> und 17 weitere festgelegte Prüfungen!
>
> D.h. eine Probe kann bis zu 20 Prüfungen unterzogen werden, meist sind
> es aber deutlich weniger, je nach Fragestellung. Jede einzelne Prüfung
> besteht aus 5-15 Parametern. Die Beziehungen Probe->Prüfung ist immer
> eindeutig, eine Probe kann nur genau eine Dichte usw. haben.
>
>
> Wie soll sowas in einer DB bzw. Tabelle abgebildet werden?

Möglichkeit 1: Pro Prüfung eine Tabelle, dann hast Du wenigstens snicht
so viele NULLs drin.

Dann hast Du

* eine Tabelle probe mit ID (auto_increment) und evtl. anderen Parametern
* eine Tabelle masshalt mit ID (Fremdschlüssel zu probe) und den o.g.
Parametern

usw.

2. Möglichkeit:
Eine Tabelle Prüfungen (id auto_increment, name varchar(30))
mit "Maßhaltigkeit", "Dichte", "Chemie", ...

Eine Tabelle Werte (id int auto_increment, prf_id int, name varchar(30))
mit (1,"Länge), (1,"Breite"), (1,"Höhe"), (2,"Einwaage"), ..., usw.

Das sind die "Metatabellen", sag ich mal.


Dann gibt es

* eine Tabelle Proben, in der die Proben eingetragen und mit ID versehen
werden.
* eine Tabelle Prüfung, in der durchgeführte Prüfungen eingetragen
werden mit ID auf Probe, ID auf die Metatabelle Prüfungen, Prüfer (evtl.
auch mit Fremdschlüssel) und Datum.

* eine Tabelle Werte mit ID auf Prüfung, ID auf die "Meta-Werte" und dem
Meßwert.


So in der Richtung eben...


Thomas

Report this message