Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TB Relation, zusammengesetzter Primärschlüssel (https://www.delphipraxis.net/104400-tb-relation-zusammengesetzter-primaerschluessel.html)

Salomon 3. Dez 2007 10:34

Datenbank: MS SQL • Zugriff über: ADO

TB Relation, zusammengesetzter Primärschlüssel
 
Hi,
habt ihr ein paar Infos über Relationen zwischen Tabellen bei zusammengesetzten Primärschlüsseln? Muss ich in der verknüpften Tabelle alle Primärschlüsselfelder der Primärschlüsseltabelle anlegen?

Ich möchte das in einer zweiten Tabelle ein Datensatz gelöscht wird, wenn der verknüpfte in der Primärtabelle gelöscht wird...

Gruß
Marcus

marabu 3. Dez 2007 11:21

Re: TB Relation, zusammengesetzter Primärschlüssel
 
Hallo Marcus,

es ist "schöner", wenn du mit einem Surrogate Key (künstlicher Schlüssel, GUID, AUTOINC, ...) arbeitest, aber auch mit einem Compound Key kann man leben. Tatsächlich müssen alle Felder des Primärschlüssels auch in der abhängigen Tabelle Entsprechungen finden. Das automatische Löschen der abhängigen Datensätze erreichst du am Besten über die DRI (Declarative Referential Integrity) Klausel ON UPDATE CASCADE.

Grüße vom marabu

Salomon 3. Dez 2007 11:43

Re: TB Relation, zusammengesetzter Primärschlüssel
 
Hi Achim,
dann probiere ich das mal so. Hat den Vorteil das ich auch nur ein DB Feld pro Tabelle zum Verknüpfen brauche.

Nachtrag:

Mit einem Key aus einem Feld hat es hingehauen:

SQL-Code:
BEGIN TRANSACTION
GO
ALTER TABLE dbo.TB_AM_User_Activity ADD CONSTRAINT
   FK_TB_AM_User_Activity_TB_AM_Team_Activity FOREIGN KEY
   (
   FK_Team_ActivityID
   ) REFERENCES dbo.TB_AM_Team_Activity
   (
   Team_ActivityID
   ) ON UPDATE CASCADE
    ON DELETE CASCADE
   
GO
COMMIT


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz