SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.11.2014, 07:52:57
monk77 monk77 ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 47
Beiträge: 7
Sind 203 Spalten in einer Tabelle zu viel?

Hallo,

ich habe derzeit folgendes Problem:

Es sollen Rezepturen unseres Betriebs gespeichert werden.

Der Aufbau einer Rezeptur gestaltet sich folgendermaßen.

Rohstoff Menge Charge 1 Menge Charge 2 Menge Charge 3 Menge Charge 4

Jetzt fängt der Ärger schon damit an, dass natürlich nicht jeder Rohstoff unter Einsatz von 4 verschiedenen Chargen ins Endprodukt einfließt. Die Regel ist eher 1 - 2. Pro Rezeptur werden durchschnittlich 15 Rohstoffe benötigt. Es gibt allerdings auch Rezepturen mit 25 Rohstoffen.

Mein erster Lösungsansatz war folgender:

Eine Tabelle "historie":

id | rohstoff-Fremdschlüssel | Reptur_ID |Charge 1 | Menge_Charge 1 | Charge 2 | Menge_Charge 2 | Charge 3 | Menge_Charge 3 | Charge 4 | Menge_Charge 4 | Datum | angelegt_Benutzer


Vorteil dieser Struktur: Das System ist relativ flexibel. Nachteil ist aber eindeutig, dass ich bei einer 25-Rohstoff-Rezeptur 25 Datensätze benötige. Die müssten dann später mit group by aus der Datenbank geholt werden, wenn die Rezeptur auf dem Bildschirm ausgegeben werden muss. Da aber in so einer Historie pro Jahr 3000 Rezepturen anfallen, könnten das in den nächsten Jahren ziemlich viele Datensätze werden, die dann ständig mit group by soritiert werden müssten.

Mein nächster Ansatz wäre, alles in eine 100spaltige Tabelle zu packen. Das wird dann aber extrem unübersichtlich.

Dann habe ich mir gestern abend noch einen 3. Ansatz überlegt und zwar, dass ich für jede Charge eine eigene 51spaltige Tabelle verwende.

Also z. B. 4 Tabelle Charge 1, Charge 2, Charge 3, Charge 4

id | rohstoff1 | charge | rohstoff2 | charge | rohstoff3 | charge usw

Dann gibt es noch eine 5. Tabelle, in der die 4 Chargen-Tabellen verknüpft werden. Außerdem enthält die 5. Tabelle noch eine user-Spalte (also wer hat die Rezeptur abgelegt und eine Datumsspalte.

Nachteil dieser Möglichkeit. Am Ende kommt es zu Abfragen über 6 Tabellen.

Zu welcher Variante würdet ihr mir langfristig raten?

LG
Mit Zitat antworten
  #2  
Alt 10.11.2014, 10:02:32
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von monk77 Beitrag anzeigen

Zu welcher Variante würdet ihr mir langfristig raten?

LG
zu keiner.
Mit Zitat antworten
  #3  
Alt 10.11.2014, 10:17:23
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Sind 203 Spalten in einer Tabelle zu viel?

Mr. monk77

Das riecht nach Lebensmitteln .....

"Normalisierung" ist das Zauberwort.

Die Anzahl der Tabellen ist selten ein Problem bei halbwegs modernen DBMS.
Auch nicht die Anzahl der Datensätze.

Aber "203 Spalten in einer Tabelle" das macht Sorgen!!

Zitat:
Es gibt allerdings auch Rezepturen mit 25 Rohstoffen.
Und Morgen eine Rezeptur mit 52 Rohstoffen....
Was dann .....


Du verwendest Begriffe wie Rohstoff, Menge, Charge. Für dich ist vermutlich eindeutig, was damit gemeint ist. Für mich nicht.
Mit Zitat antworten
  #4  
Alt 10.11.2014, 12:08:37
monk77 monk77 ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 47
Beiträge: 7
AW: Sind 203 Spalten in einer Tabelle zu viel?

Entschuldigung, ich habe mich da heute morgen etwas knapp ausgedrückt.

Ja, es handelt sich in der Tat um Lebensmittel. In der Lebensmittelindustrie ist es oberstes Gebot, alle Rohstoffchargen, die in ein Endprodukt eingeflossen sind, zu dokumentieren, so dass die Kette nahtlos zurückverfolgt werden kann.

Das ist für uns im Klartext, dass wenn in eine Mischung von einem Rohstoff 2 Chargen (Lot-Nr) eingeflossen sind, müssen wir diese in unserer Rezepturenhistorie speichern. Im Prinzip sind wir sogar dazu verpflichtet.

Das heißt natürlich, dass wir in einer Rezeptur datenbanktechnisch ziemlich viele Variablen haben. -> Anzahl der Rohstoffe -> Anzahl der Chargen pro Rohstoff

Zum Thema Anzahl der Rohstoffe je Rezeptur. Die Anzahl mit 25 ist schon sehr hoch kalkuliert. Das höchste, was bisher vorkam, waren 19 Zutaten und das gilt für uns hier intern als Limit. Mehr soll einfach nicht sein.
Mit Zitat antworten
  #5  
Alt 10.11.2014, 12:11:13
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von monk77 Beitrag anzeigen
Im Prinzip sind wir sogar dazu verpflichtet.
Nicht nur im Prinzip.

Zitat:
Zum Thema Anzahl der Rohstoffe je Rezeptur. Die Anzahl mit 25 ist schon sehr hoch kalkuliert. Das höchste, was bisher vorkam, waren 19 Zutaten und das gilt für uns hier intern als Limit. Mehr soll einfach nicht sein.
Das ist irrelevant. Die Regeln für Normalisierung gelten davon unabhängig.
Mit Zitat antworten
  #6  
Alt 10.11.2014, 12:13:51
monk77 monk77 ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 47
Beiträge: 7
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von pguser Beitrag anzeigen
Nicht nur im Prinzip.



Das ist irrelevant. Die Regeln für Normalisierung gelten davon unabhängig.
Danke für Deine Aufklärung ...
Mit Zitat antworten
  #7  
Alt 10.11.2014, 12:20:34
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von monk77 Beitrag anzeigen
Danke für Deine Aufklärung ...
Bitte, gern.
Mit Zitat antworten
  #8  
Alt 10.11.2014, 12:31:11
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von pguser Beitrag anzeigen
Bitte, gern.
Um mal grob zu zeigen, wie es richtig wäre:

Code:
test=*# create table zutaten (id int primary key, name text);
CREATE TABLE
Time: 53,186 ms
test=*# create table charge (id int primary key, charge int references zutaten, datum date);
CREATE TABLE
Time: 66,338 ms
test=*# create table speise (id int primary key, name text);
CREATE TABLE
Time: 21,740 ms
test=*# create table mischung (speise int references speise, charge int references charge, primary key(speise,charge));
CREATE TABLE
Time: 12,283 ms
Jede gemachte Speise kann so über die Tabelle Mischung auf die einzelnen Chargen aufgesplittet werden. Egal, ob da 2, 20 oder 278 einzelne Zutaten/Chargen einfließen. Auf Mengenangaben etc. habe ich jetzt der Einfachkeit halber verzichtet, das bitte nach Geschmack abwürzen und schmecken lassen.
Mit Zitat antworten
  #9  
Alt 10.11.2014, 13:17:00
monk77 monk77 ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 47
Beiträge: 7
AW: Sind 203 Spalten in einer Tabelle zu viel?

Hallo,

zuerst dachte ich eben, Du wärst so ein Klugsch....., der sich mit Vorliebe auf Beiträge anderer stürzt, um diese zu torpedieren.

Vor allen Dingen, als ich schrieb - oberstes Gebot der Lebensmittelindustrie ist, dass alles chargentechnisch nahtlos zurückverfolgt werden kann und wir prinzipiell dazu verpflichtet sind. Von Dir kam dann "nicht nur im Prinzip".

Da hatte ich dann erst einmal keine Lust mehr, weil ich mir dachte, dass schrieb ich doch gerade eben, dass wir dazu gesetzlich verpflichtet sind.

Aber jetzt möchte ich mich bei Dir für Deinen Lösungsansatz bedanken. Meine ich wirklich ernst. Nur ist es doch hier so, dass ich immer noch mehrere tupel in der Tabelle "charge" habe, wenn ich mehrere pro Rohstoff einsetze. Oder irre ich mich da?
Mit Zitat antworten
  #10  
Alt 10.11.2014, 13:34:06
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Sind 203 Spalten in einer Tabelle zu viel?

Zitat:
Zitat von monk77 Beitrag anzeigen

Aber jetzt möchte ich mich bei Dir für Deinen Lösungsansatz bedanken. Meine ich wirklich ernst. Nur ist es doch hier so, dass ich immer noch mehrere tupel in der Tabelle "charge" habe, wenn ich mehrere pro Rohstoff einsetze. Oder irre ich mich da?
Wo ist das Problem?

Code:
test=*# insert into zutaten values (1, 'zutat1');
INSERT 0 1
Time: 0,452 ms
test=*# insert into zutaten values (2, 'zutat2');
INSERT 0 1
Time: 0,157 ms
test=*# insert into charge values (1, 1, '2014-11-01');
INSERT 0 1
Time: 0,699 ms
test=*# insert into charge values (2, 1, '2014-11-02');
INSERT 0 1
Time: 0,298 ms
test=*# insert into charge values (3, 2, '2014-11-03');
INSERT 0 1
Time: 0,335 ms
test=*# insert into speise values (1, 'speise1');
INSERT 0 1
Time: 0,500 ms
test=*# insert into mischung values (1, 1);
INSERT 0 1
Time: 0,798 ms
test=*# insert into mischung values (1, 2);
INSERT 0 1
Time: 0,289 ms
test=*# insert into mischung values (1, 3);
INSERT 0 1
Time: 0,295 ms
Deine Speise 1 enthält nun 3 Chargen von 2 Zutaten. Zutat 1 ist mit Anteilen von 2 Chargen vertreten (die eine Charge wurde grad alle, zum Beispiel).
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Drei Spalten einer Tabelle mit einer anderen verküpfen Hiesi MySQLi/PDO/(MySQL) 4 04.10.2014 07:15:20
Temporäre Tabelle - Spalten löschen ab Spalte 11 Parador MySQLi/PDO/(MySQL) 1 20.03.2010 21:03:40
spalten in tabelle ändern(anfängerfrage) hade0011 MySQLi/PDO/(MySQL) 1 18.06.2008 23:08:41
Abfrageproblem - 2 Spalten mit einer Tabelle verknüpfen grone MySQLi/PDO/(MySQL) 2 09.11.2006 20:14:37
Eine Tabelle 3 Spalten ohne primary key Franzx MySQLi/PDO/(MySQL) 1 30.05.2006 21:55:37


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:45:30 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt