Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Doppelte Datensätze verhindern in 1:N-Verknüpfung (https://www.delphipraxis.net/205003-doppelte-datensaetze-verhindern-1-n-verknuepfung.html)

BlueStarHH 27. Jul 2020 18:20

AW: Doppelte Datensätze verhindern in 1:N-Verknüpfung
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1470490)
Wären diese Daten aus einer Tabelle,
Code:
GegenstandID Groesse Farbe Eigenschaft
1             50x90    weiß   zerbrechlich
2             XL     blau brennbar
3             XL     blau brennbar
würdest Du also einen Index der Form
SQL-Code:
create unique index ix_Groesse_Farbe_Eigenschaft on tabelle (Groesse, Farbe, Eigenschaft);
benötigen.

Da es sich aber um zwei Tabellen handelt, brauchst Du eine entsprechende "tabellenübergreifende" Lösung.

Hab' ich das so (in etwa) richtig verstanden?

Ja, richtig! Wobei noch wichtig ist, dass es durch die Drei-Tabellen-Lösung mehr als eine Eigenschaft pro Gegenstand geben könnte und können soll.

jobo 27. Jul 2020 19:33

AW: Doppelte Datensätze verhindern in 1:N-Verknüpfung
 
Wie geht das mit dem bisher geforderten übernander?

Würden die Beispieldaten aus #20 mit dem genannten unique Index aus #20 überhaupt existieren?

Wie wär es, wenn BluestarHH mal positive und negative Beispiel aufführt, um sein Problem plastischer zu machen?

BlueStarHH 27. Jul 2020 19:51

AW: Doppelte Datensätze verhindern in 1:N-Verknüpfung
 
Zitat:

Zitat von jobo (Beitrag 1470502)
Wie geht das mit dem bisher geforderten übernander?

Wo siehst Du einen Wiederspruch? Evtl. Post #20 falsch verstanden?

Zitat:

Zitat von jobo (Beitrag 1470502)
Würden die Beispieldaten aus #20 mit dem genannten unique Index aus #20 überhaupt existieren?

Nein, würden sie nicht. Ich hab den Ersteller von #20 auch nicht so verstanden. (Könnte man aber leicht). Die Verwirrung war nur seinem Copy&Paste meiner Beispieldaten geschuldet. Streiche einfach das Beispiel aus Post #20 dann stimmt die Aussage mit dem Index trotzdem. Also nochmal deutlich : In einer Tabelle würde ich es mit einem Index wie diesem lösen:
create unique index ix_Groesse_Farbe_Eigenschaft on tabelle (Groesse, Farbe, Eigenschaft)
Das geht bei mir aber nicht, da ich 3 Tabellen habe und haben muss.

Ein positiv und negativ Beispiel findest Du in #19.

Delphi.Narium 28. Jul 2020 08:03

AW: Doppelte Datensätze verhindern in 1:N-Verknüpfung
 
Bei dem von mir vorgeschlagenen Index würde die dritte Zeile im Beispiel zu einer Indexverletzung führen und wäre somit nicht möglich.

jobo 30. Jul 2020 17:32

AW: Doppelte Datensätze verhindern in 1:N-Verknüpfung
 
Zitat:

Zitat von BlueStarHH (Beitrag 1470505)
Evtl. Post #20 falsch verstanden?

Zitat:

Zitat von jobo (Beitrag 1470502)
Würden die Beispieldaten aus #20 mit dem genannten unique Index aus #20 überhaupt existieren?

Nein, würden sie nicht.
..
Ein positiv und negativ Beispiel findest Du in #19.

Ja, anders verstanden. In Post 20 steht nirgends, dass die dargestellte Kombination nicht funktionieren soll. Sondern dass hier unerwünschte Daten stehen, die mittels des Index verhindert werden sollen.

Aber wie auch immer, ich hab's endlich kapiert, sorry.
Wenn unter keinen Umständen das bestehende System verändert, sondern nur erweitert werden soll, ja dann muss man häßliche Dinge machen mit Triggern.

Ich würde wie eingangs vorgeschlagen die Farbe und Größe mit in die Eigenschaften übernehmen. Falls der Erhalt als "Originalspalte" unabdingbar ist, würde ich das per View einblenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.
Seite 3 von 3     123   

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