Mailinglisten-Archive |
Hallo Kristian,
> Beide Tabellen stehen in einer Master-Detail-Beziehuing zueinander,
> wobei t1_id in t1 Schlüssel und in t2 Fremdschlüssel ist, d.h.
Ja, das ursprüngliche Modell war sogar eine m:n-Relation, also das ganze
doppelt.
> nicht, muß die Datenbank tatsächlich das volle Kreuzprodukt der
> beiden Tabellen errechnen, was zu gigantischen Rechenzeit- und
> Speicheraufwendungen führt.
Stimmt, das ist wichtig. Bei m:n dann die Quadratur des Kreuzprodukts
usw. Key-haltige Spalten immer gleich mit Index, schon bei der
Erstellung.
> darstellt ("select t2.preis * 1.16 as bruttopreis ...") oder die Spalte
> einen voll qualifizierten Namen enthält. Dies ist durch Einschränkungen in
> der MySQL-API bedingt und kann durch PHP nicht korrigiert werden.
Aha.
> Wie oben erklärt, mußt Du das auch andernfalls, da es durch Schema-
> Änderungen sowieso sein kann, daß Deine Query ungültig wird. Die
> korrekte Antwort auf das Problem ist die Definition eines Query-
> Dictionary in Form eines Hashes oder einer Access-Container-Klasse.
Meine Vermutung, daß mysql die qualifizierten Namen bekanntgibt, php
aber nicht, resultierte aus der Erfahrung mit einem API-basierten Tool,
das Namen in der Form tabelle.feld in den Spalten wiedergibt. Wenn ich
Dich hier richtig verstehe, muß ich aber eher vermuten, daß ein
on-the-fly Hash (oder wie auch immer) erzeugt wurde. Auch nicht blöd.
Mit freundlichen Grüßen,
Oliver Kummerow
email: naklar_(at)_altavista.net
php::bar PHP Wiki - Listenarchive