Mailinglisten-Archive |
Michael Bergbauer schrieb: > > On 12-Jul-2001 Eric Beer wrote: > > hi there > >> > > >> > welche Felder in einer DB sollte ich mit einem INDEX belegen ?? > >> > > >> > >> Aufgrund langjähriger Erfahrungen empfehle ich dir einen "sauberen" > >> DB-Design, wo du insbesondere alle PRIMARY und FOREIGN KEYS richtig > >> definierst. > > > > der primärschlüssel ist mir ja noch klar. aber wozu sollte man > > fremdschlüssel definieren? die relation zwischen den tabellen erzeuge ich ja > > in der abfrage unter einbezug gleicher column-namen!? > > warum soll das ein Fremdschlüssel sein? Fremdschlüssel ist das, wo > Fremdschlüssel dabei steht, und nicht weil es zufällig gleiche Spaltennamen > sind. > > > falls ich damit richtig liege; ist das auch der grund, dass mysql > > fremdschlüssel gar nicht unterstützt? > > Nein, sondern weil Fremdschlüssel nur dann Vorteile bringen, wenn ON > {DELETE|UPDATE} {CASCADE|NO ACTION|SET NULL} unterstützen, weil dann die > referentielle Integrität gewahrt bleibt. Allerdings kostet jede der Optionen > entsprechende Rechenzeit, und ist nicht "unbedingt" erfoderlich, wenn man die > Applikation entsprechend entwirft. Die Vorteile überwiegen aber im Normalfall enorm, weil bei einer Datenbank-gestützten Applikation die referentielle Integrität eines der wichtigsten Ziele sein sollte! Zudem: Auch MySql wird FOREIGN KEYS gemäss Handbuch in Zukunft unterstützen! Vgl. dazu: http://www2.little-idiot.de/mysql/mysql-45.html MfG Franziska --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive