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