Mailinglisten-Archive |
On 19-Aug-2000 Joern Grube wrote: > At 08:20 19.08.2000 +0200, you wrote: >>Hi! >> >>Man kann einen Key anlegen, der aus einer Kombination mehrerer Felder >>besteht. Genaueres weiss ich auch nicht, ich bin mir auch nicht 100% sicher >>daß MySQL das unterstützt, denke aber schon. Genaueres müsste dann in der >>Doku stehen. > > Da liegt ja immer mein Problem, jeder verweist auf die Doku, irgendne FAQ > oder sonst was, aber keiner sagt, WONACH man suchen sollte (na ja, manche > tun es <s>). > Trotzdem danke. Ich denke, wenn ich es in PHP abfange, kann ich nichts > falsch machen. Ich will dir hier nicht auf die Füsse treten, dein Problem ist doch schon eines der komplexeren, die auf Listen wie dieser behandelt werden, ich will das jetzt eher allgemein ansprechen. Ich muß generell feststellen, das die Bereitschaft, Dokus/FAQs usw zu lesen stark abgenommen hat, so nach dem Motto, warum soll ich mich zwei Stunden hinsetzen, und danach suchen, wenn ich in zwei Stunden ne Antwort von der Liste haben kann. Wenn man mal das Handbuch zu so nem Produkt wie MySQL gelesen hat, und vielleicht auch ein weiteres Buch zu Datenbanken allgemein, dann sollte sich IMHO so eine Frage wie deine nicht mehr stellen. Und mit lesen mein ich wirklich lesen, nicht nur im Schrank haben. Und so ein Buch sollte auch ständig griffbereit sein, man kann nicht alles was drinsteht auswendig wissen, sondern mal muß nur wissen, wo man es im Zweifelsfall nachschlagen kann. So, jetzt speziell zu deinem Problem: du kannst das sowohl in SQL als auch in PHP lösen, die SQL Lösung kann ich dir hier mal andenken, für PHP muß ich an andere verweisen. Ideal ist in meinen Augen eine Kombination (warum, dazu unten mehr). Du solltest für die Felder, deren Kombinationen einmalig sein müssen, einen Unique index einrichten: alter table <foo> add unique <bar> (<spalte1>, <spalte2>, ....) Wenn du versuchst, die gleiche Kombination nochmal reinzuschreiben, dann schreit MySQL. So, warum jetzt auch in PHP abfangen? Ganz einfach: User sollten nicht mit Backend-Fehlermeldungen konfrontiert werden, die sie nicht verstehen können. Diese Fehlermeldungen sollten abgefangen werden, und durch verständlichere ersetzt werden. U.U. kann man sogar in PHP den Error-Condition direkt vermeiden indem man den User bereits vorher auf das Problem hinweist, und sagt, das es so nicht gehen wird. Wenn alles schon in PHP gelöst ist, warum dann noch zusätzlich in MySQL? Auch ganz einfach: was wird passieren, wenn du zwei (in den beiden Feldern) gleiche Datensätze hast? Naja, irgendwas schlechtes, drum willst du es ja nicht haben. Und es sind sicherlich nicht alle Zugriffe ausschliesslich über PHP (bzw. über die Seiten mit der Kontrolle), du mußt vielleicht irgendwann mal Datensätze per Hand abändern. UNd dann bist du dankbar, das die Datenbank auch nochmal drüber wacht. Michael -- Michael Bergbauer <michael.bergbauer_(at)_gmx.net> Use your idle CPU cycles. See http://www.distributed.net and win $ 1 000. Visit our mud Geas at geas.franken.de Port 3333 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive