AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Warum Primary Key und/oder Foreign Key ?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum Primary Key und/oder Foreign Key ?

Ein Thema von RWarnecke · begonnen am 4. Jul 2010 · letzter Beitrag vom 4. Jul 2010
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 12:10
Datenbank: egal • Version: egal • Zugriff über: egal
Hallo zusammen,

ich lese immer wieder das man die beiden Key's aus dem Titel setzen soll. Mir erschliesst sich nur noch nicht, warum ich diese Key's setzen soll. Ich habe jetzt schon mehrere Beiträge und Anleitungen gelesen. Aber so richtig verstehen tue ich es trotzdem nicht. Ich habe jetzt schon mehere kleine Projekte mit Datenbanken gemacht, zum Beispiel Code-Orakel. Hier habe ich auch keine Key's gesetzt.

Nun zu meinen Fragen :
Worin besteht nun der Vorteil einen Primary Key und oder einen Foreign Key zusetzen ?
Ab wann macht es Sinn diese Key's zu benutzen ?
Würdet Ihr egal, wie groß die Datenbank wird immer einen oder beide Key's setzen ?
Hängt auch vielleicht das Design der Tabelle davon ab, ob ich einen Key setze oder nicht ?

Edit: Wo können Stolpersteine entstehen, wenn ich keinen Key setze ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.873 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 12:20
Zitat:
Worin besteht nun der Vorteil einen Primary Key und oder einen Foreign Key zusetzen ?
Es wird dann ein Index erzeugt.
Primärschlüssel sind Voraussetzung für Fremdschlüssel.
fremschlüssel haben den Vorteil, dass man nur vorhandene Masterwerte in einer Detailtabelle auswählen kann. es sind auch Delete-Rules möglich
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 13:00
Es wird dann ein Index erzeugt.Primärschlüssel sind Voraussetzung für Fremdschlüssel.
Das würde also heißen, dass die Suche in einer Datenbank beschleunigt.
fremschlüssel haben den Vorteil, dass man nur vorhandene Masterwerte in einer Detailtabelle auswählen kann. es sind auch Delete-Rules möglich
Da sprichste in einem Rätsel. Kannste mir das bitte an einen Beispiel erklären. Ich kann mir darunter nichts vrostellen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 13:03
fremschlüssel haben den Vorteil, dass man nur vorhandene Masterwerte in einer Detailtabelle auswählen kann. es sind auch Delete-Rules möglich
Da sprichste in einem Rätsel. Kannste mir das bitte an einen Beispiel erklären. Ich kann mir darunter nichts vrostellen.
Stell die eine Tabelle mit Mitarbeitern vor und dazu eine Tabelle mit irgendwelchen Meta-Daten über diesen Mitarbeiter. Die beiden Tabellen sind mit einem Fremdschlüssel (Mitarbeiter ID) verknüpft. Nun kannst Du es so einrichten, dass wenn die Mitarbeiter ID aktualisiert wird in der Mitarbeiter-Tabelle sind die Mitarbeiter-ID der anderen Tabellen auch mit aktualisiert wird. Oder wenn ein Mitarbeiter aus der Mitarbeitertabelle gelöscht wird, die entsprechenden Datensätze aus der anderen Tabelle automatisch mit gelöscht werdne...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.873 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 13:14
Zitat:
Das würde also heißen, dass die Suche in einer Datenbank beschleunigt.
Wenn nach dem Primärschlüssel gesucht wird
Zitat:
Da sprichste in einem Rätsel. Kannste mir das bitte an einen Beispiel erklären. Ich kann mir darunter nichts vrostellen.
Welchen Teil meinst du ( der 2. wurde schon erklärt)
Ohne Fremdschlüsselbeziehung könnten auch in der Mastertabelle nicht vorhandene Werte verwendet werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: Warum Primary Key und/oder Foreign Key ?

  Alt 4. Jul 2010, 14:13
Hallo David, Hallo Markus,

erstmal danke für eure Erklärungen.So ganz kann ich noch nicht folgen. Ich versuche es mal so zu erklären, wie ich es verstanden habe. Korrigiert mich wenn irgendwas falsch ist.

Code:
Tabelle mit Mitarbeitern:
+---------------+---------+----------+-----------+---------+
+ MitarbeiterID + Vorname + Nachname + Abteilung + Telefon +
+---------------+---------+----------+-----------+---------+
+ 1000          + Hans   + Meier   + Einkauf  + -1234   +
+---------------+---------+----------+-----------+---------+
Code:
Tabelle mit Metadaten von Mitarbeitern:
+---------------+-------+------------+-------------+
+ MitarbeiterID + Alter + Geschlecht + Geburtsort +
+---------------+-------+------------+-------------+
+ 1000          + 43    + männlich  + Musterstadt +
+---------------+-------+------------+-------------+
In beiden Tabellen ist der Primary Key auf das Feld MitarbeiterID gesetzt. Bei dieser Voraussetzung, wenn ich es richtig verstanden habe, könnte ich jetzt bei beiden Datensätzen die MitarebiterID von 1000 auf 1001 ändern, richtig ?

Wenn ja, wie müsste ich da den SQL-Befehl schreiben ? Wenn nein, was habe ich falsch gemacht ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz