aLeXL Geschrieben 21. September 2007 Teilen Geschrieben 21. September 2007 Hi, wenn ihr eure Datenbänke erstellt, ordnet ihr dann references zu ? Also z.b. create table Produkt ( ProdId int primary key, Bezeichnung varchar (50) not null, Preis float not null, Bestand int not null, HerstId int, foreign key (HerstId) [B]references Hersteller (HerstId));[/B] Was genau bringt es mir denn, wenn ich die reference angebe, aber in meiner SQL Abfrage eh selbst programmiere, dass er in der Datenbank die HerstId sucht die ich haben will ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 21. September 2007 Teilen Geschrieben 21. September 2007 Servus, Mit der Angabe ermöglichst Du es der Datenbank, die referentielle Integrität zu prüfen. Wenn Du diese Constraints nicht festlegst, könntest Du ja einen FK eintragen, der überhaupt nicht existiert. Dies wird durch den Constraint verhindert. In meinen Augen sollte man Constraints nutzen, da sie schließlich einen sinnvollen und wichtigen Beitrag leisten, das die Datenbank konsistent bleibt. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Angelius Geschrieben 21. September 2007 Teilen Geschrieben 21. September 2007 Hi, duchr die Referenzen kann der Datenbankserver verbindungen zwichen den einzelnen Tabelle schneller herstellen. dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar. Des weiteren verhindert dies das zB aus der refenzierten Tabelle einträge gelöscht werden können sollange noch Einträge mit dem gleichen Key in der referenzierenten Tabelle vorhanden sind. Das heist beim Löschen von daten gibt es weniger Datenmüll der übrig bleibt. Mit der entsprechenden Option am Server ist es möglich das beim löschen eines Eintrages in der referenzierten Tabelle alle zugehörigen Eintrage aus den referentierenten Tabellen gelöscht wird. dies ist allerdings mit vorsicht zu genießen... grz ange Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 21. September 2007 Teilen Geschrieben 21. September 2007 zwichen den einzelnen Tabelle schneller herstellen. Woher hast Du denn das? Eine Verbindung zwischen zwei Tabellen wird über die JOIN-Bedingung angegeben. Anschließend werden diese Spalten gematcht egal ob da ein FK-Constraint dran hängt oder nicht. dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar. Hmm gibt's da auch ein nachvollziehbares Beispiel? Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 21. September 2007 Teilen Geschrieben 21. September 2007 ACK. die aussage, dass FOREIGN KEY .. REFERENCES die datenbankperformance verbessern soll, ist niemals und nirgendwo im SQL-standard definiert worden und somit schlicht und ergreifend falsch. Was genau bringt es mir denn, wenn ich die reference angebe REFERENCES ist die voraussetzung dafür, verschiedene referentielle operation anzugeben, darunter z.b. ON DELETE CASCADE oder ON DELETE SET NULL. das hängt allerdings vom RDBMS ab, und welchen SQL-standard (99, 03) das RDBMS umsetzt. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.