Seite 1 von 1

Relationen in SQL

Verfasst: Sa, 14. Mai 2011 19:38
von Manfred
Hi,

jetzt merke ich wo es Differenzen gibt. Wenn ich 2 DBF verknüpfe, dann habe ich in der Regel eine ID, auf die ich mich beziehe. Sprich, DBF 1 hat die ID und DBF 2 hat ein Feld, dass sich auf die ID aus DBF 1 bezieht. Auf beide Felder lege ich dann einen Index und kann somit in beide Richtungen verbinden. Wie löst man sowas unter SQL? Sind das die Fremdschlüssel? Gibt es da sowas wie eine automatische Verknüpfung innerhalb der einzelnen Tabellen?

Ich denke mal, es werden sich aus der Antwort weitere Fragen ergeben.

Re: Relationen in SQL

Verfasst: Sa, 14. Mai 2011 20:23
von Jan
In SQL mußt Du das nicht machen. Da nimmst Du ein JOIN (meist LEFT JOIN, aber auch INNER, RIGHT, oder nur JOIN), und gibst dabei an, welche Felder in den beiden Tabellen die gleichen Daten beinhalten. Ein Index muß da nicht sein, beschleunigt aber die ganze Sache.

Unter machen SQL-Versionen kann man auch intern Verknüpfungen festlegen, auch Access macht sowas. Dadurch wird eine referentielle Integrität gegeben, wenn also ein Datensatz in einer Tabelle gelöscht wird, dann merkt der SQL-Server selber, das es verknüpfte Datensätze in einer anderen Tabelle gibt, und gibt einen Warnung aus. man muß das dann nicht mehr im Code berücksichtigen. Kann aber wie gesagt nicht jeder SQL-Server.

Jan

Re: Relationen in SQL

Verfasst: So, 15. Mai 2011 12:03
von Herbert
Manfred, verbrenn dir nicht das Hirn. Xbase 2.0 übernimmt für dich solche Sachen.
Ja, ich weiss, du willst es vorher wissen... :D