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 ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 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 > MySQL/MySQLi

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.07.2013, 14:16:29
Thallius Thallius ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 54
Beiträge: 4
CrossTable oder doch nur ein Textfeld?

Hallo,

ich habe eine Tabelle mit Werkzeugen und eine Tabelle mit Lieferanten dazu.
Nun kann ein Werkzeug aber mehrere Lieferanten haben.

Ich habe nun die Möglichkeit eine Crosstable zu machen in der ich alle Lieferanten und Werkzeuge verknüpfe oder ich mache in die Werkzeugtabelle einen Textfeld, wo ich die Unique-Indizes der Lieferanten für dieses Werkzeug einfach mit einem Separator getrennt eintrage.

Ich muss nicht herausfinden welcher Lieferant welche Werkzeuge liefern kann. Deshalb ist eine CrossTable nicht absolut notwendig. Ich muss nur herausfinden welche Lieferanten mir alle ein bestimmtes Werkzeug liefern können.

Welche Lösung wäre hier besser? Klar ist die CrossTable der sauberer Weg aber wie sie es mit der Performance aus?

Es geht hier um ca. 600 Werkzeuge und ca. 10 Lieferanten.

Gruß

Claus
Mit Zitat antworten
  #2  
Alt 29.07.2013, 14:20:19
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: CrossTable oder doch nur ein Textfeld?

Da das eine klassische n:m Relation ist, liegst du mit deiner Kreuztabelle goldrichtig.


Zitat:
mit einem Separator getrennt eintrage
Ein grober Verstoß gegen die erste Normalform
Mit Zitat antworten
  #3  
Alt 29.07.2013, 17:13:56
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Zitat von Thallius Beitrag anzeigen
Ich muss nicht herausfinden welcher Lieferant welche Werkzeuge liefern kann.
...
Ich muss nur herausfinden welche Lieferanten mir alle ein bestimmtes Werkzeug liefern können.
Darüber solltest Du noch mal nachdenken.
Mit Zitat antworten
  #4  
Alt 29.07.2013, 17:19:25
Thallius Thallius ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 54
Beiträge: 4
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Zitat von meikel Beitrag anzeigen
Darüber solltest Du noch mal nachdenken.
Ja ist blöd ausgedrückt.

Besser formuliert:

Ich muss nicht aus der DB von den Lieferanten auf die Werkzuege schliessen die diese herstellen. Ich muss lediglich wissen von welchen Herstellern ich ein Werkzeug beziehen kann.

Habe mir schon gedacht das die XTable der richtige Weg ist aber mir kommt das so oversized vor.

Gruß

Claus
Mit Zitat antworten
  #5  
Alt 29.07.2013, 17:31:26
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Habe mir schon gedacht das die XTable der richtige Weg ist aber mir kommt das so oversized vor.
Das ist eine relationale Datenbank.
Also denke auch in Relationen.
Und handle auch so.

Und wenn du dir wirklich je Nutzung einen Indexes versauen, oder ein Maximum an Datenbanklast erzeugen, willst, dann nutze das MySQL FIND_IN_SET().
Mit Zitat antworten
  #6  
Alt 29.07.2013, 17:33:59
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Zitat von Thallius Beitrag anzeigen
Ja ist blöd ausgedrückt.
So isses.
Zitat:
Ich muss nicht aus der DB von den Lieferanten auf die Werkzuege schliessen die diese herstellen. Ich muss lediglich wissen von welchen Herstellern ich ein Werkzeug beziehen kann.
Dafür gibts ja SQL.
Zitat:
Habe mir schon gedacht das die XTable der richtige Weg ist aber mir kommt das so oversized vor.
Nagel doch in jedem Werkzeug die Hersteller in ein SET Feld.

http://dev.mysql.com/doc/refman/5.1/en/set.html
Mit Zitat antworten
  #7  
Alt 29.07.2013, 17:39:43
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: CrossTable oder doch nur ein Textfeld?

Tach Chef,
Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Und wenn du dir wirklich je Nutzung einen Indexes versauen, oder ein Maximum an Datenbanklast erzeugen, willst, dann nutze das MySQL FIND_IN_SET().
Is SET/ENUM wirklich so giftig oder ist mir das nur nicht aufgefallen?
Mit Zitat antworten
  #8  
Alt 29.07.2013, 17:41:50
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: CrossTable oder doch nur ein Textfeld?

Oversized?

Naja......
Wenn man sich eine ordentliche Keule schnappt, kann das ganz einfach sein.....

Unter Nutzung des RedBean ORM könnte das dann so aussehen:
PHP-Code:
<?php
 $arrayOfLieferant 
R::findOne('werkzeug','bezeichnung = ? ',array('Hakenschlüssel'))->sharedLieferant;
*über das static Gedöns kann man streiten, aber das gibts halt kostenlos dabei*

Geändert von DokuLeseHemmung (29.07.2013 um 17:52:52 Uhr)
Mit Zitat antworten
  #9  
Alt 29.07.2013, 17:43:40
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Zitat von meikel Beitrag anzeigen
Tach Chef,
Is SET/ENUM wirklich so giftig oder ist mir das nur nicht aufgefallen?
Er mochte ein Textfeld.
Irgendwie Komma separiert.
So was wie CSV in DB Zellen.
FIND_IN_SET() kann auch sowas bedienen.

Und das kann wohl gar nicht optimiert werden.
Mit Zitat antworten
  #10  
Alt 30.07.2013, 01:59:44
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: CrossTable oder doch nur ein Textfeld?

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Er mochte ein Textfeld.
Irgendwie Komma separiert.
Die beliebte Tabelle in Tabelle.
Zitat:
FIND_IN_SET() kann auch sowas bedienen.
Danke für die Info - wußte ich noch nicht.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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
Formeln aus einem Textfeld ausrechnen? timbeutel PHP Grundlagen 5 31.03.2011 14:10:34
hilfe bei problem mit textfeld devil2501 PHP Grundlagen 2 23.05.2006 09:51:48
Datei aus Verzeichnis auswählen und in Textfeld legen... phpuser PHP Grundlagen 2 03.05.2004 08:38:25
Zuweisung textfeld zu checkbox! powerbulls PHP für Fortgeschrittene und Experten 2 20.03.2004 14:58:25
<br> in einem Textfeld Lars_oha PHP für Fortgeschrittene und Experten 1 17.03.2004 19:03:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:45:54 Uhr.


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


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