| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

11-06-2005, 09:50
|
|
delle
Newbie
|
|
Registriert seit: Jun 2005
Beiträge: 4
|
|
[Funktion] Datensätze sortieren
Hallo,
dieses Problem betrifft indirekt PHP, ich hoffe dennoch das ihr mir weiterhelft, denn dies ist eine Problematik die jeder mal hatte (denke ich mir so).
Ich habe eine Tabelle (Auto) mit Fahrzeugdaten. User können Datensätze anlegen und beliebige Atrribute auswählen. Diese Autrribute werden aus eine anderen Tabelle (Listen) ausgelesen und in Form von Select Felder zur verfügung gestellt.
Wird jetzt ein neuer Datensatz in Auto angelegt so werden die Attribute die der User ausgeählt hat im Klartext in die Felder geschrieben und nicht etwa die ID des Eintrage von der Listen Tabelle.
Das ist natürlich nicht so schön weil es ja diese Normalform Regeln gibt. Ich habe dies gemacht, damit ich die Datensätze der Auto Tabelle nach bestimmten Kriterien sortieren lassen kann (z.B. Hubraum, PS, Gewicht, usw.)
Würde in der Auto Tabelle statt den Klartext Attributen die ID's der Atrributwerte der Listentabelle stehen könnte ich die Tabelle nicht mehr sortieren.
Wie macht man das in so einem Falle? Ich habe das Gefühlt, dass es ganz einfach ist, aber ich könnte im Forum nicht das Problem finden.
Mit SQL Joins müsste das machbar sein, aber diese wollte ich nach Möglichkeit nicht benutzen. Geht das auch anders mit PHP?
Danke fürs Lesen
|

11-06-2005, 10:55
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Ich sehe dein Problem nicht.
Du hast in den Attributen, nach denen du sortieren willst, nur Werte aus der Tabelle Listen. Dann sortiere doch einfach.
Oder willst du unbedingt korrekt und vollständig normalisierte Relationen? Dann brauchst du entweder eine Zuordnung Listen-Wert -> ID, die die Sortierreihenfolge erhält oder du joinst.
Was spricht denn bitte gegen JOIN?
|

11-06-2005, 10:56
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
warum solltest du dann nicht mehr sortieren können?
Naja, das stimmt in soweit, als dass du keine joins verwenden willst.
Trotzdem würde ich dir empfehlen, mit vernünftiger Normalisierung und joins zu arbeiten.
Gibt schliesslich gute Gründe, wieso es Normalisierung gibt.
(vermeidung von Redundanz, Datenkonsistenz, etc. )
Oder willst du dir die DB unnötig aufpumpen?
Performance-Mässig bringt dir das im endeffekt dann auch nichts mehr.
|

11-06-2005, 11:22
|
|
delle
Newbie
|
|
Registriert seit: Jun 2005
Beiträge: 4
|
|
hallo zusammen,
ich finde joins unübersichtlich und sie liegen mir ehrlich gesagt auch nicht so sehr. Dachte das es eventuell auch anders geht.
Schöner ist es natürlich die Datenbank zu normalisieren und dann in solchen Fällen mit Joins zu arbeiten.
Dann werde ich das mal machen.
Danke für euere Antworten.
mfg
Delle
|

11-06-2005, 11:44
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
hmm... Joins sind irgendwie Brot und Butter für DB-Entwickler...
|

11-06-2005, 11:49
|
|
delle
Newbie
|
|
Registriert seit: Jun 2005
Beiträge: 4
|
|
mag ja sein, aber dafür sind sie resourcenfressender, als wenn man z.B. 2 separate sql abfragen macht OHNE joins.
hätte ich auch nicht gedacht, ist aber so.
|

11-06-2005, 13:24
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Bei MySQL mag das so sein. Die großen Datenbanksysteme gestatten Optimierung (Clustering). Dabei wird der JOIN quasi vorab ausgeführt und die fertig gejointen Tupel auf die Platte geschrieben.
Effekt: JOIN = 1 sequential read von x Blöcken; 2 Queries = 2 reads von x Blöcken.
|

11-06-2005, 13:53
|
|
delle
Newbie
|
|
Registriert seit: Jun 2005
Beiträge: 4
|
|
aha, ok.
ihr habt mich überzeugt, dann werde ich mir mal schnell vernünftiges DB Design und vernünftige DB Abfragen lernen
mfg
delle
__________________
http://www.karting-zone.de
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|