Implementierung einer Eins-zu-Null-Beziehung in SQL Server

8

Ich verwende Entity Framework 4.1 als ersten Ansatz. Ich habe die Legacy-Datenbank verwendet. In meiner edmx-Datei, die auf der Basis von Tabellen in der Legacy-Datenbank Entitätsklassen erstellt hat, gibt es eine Eins-zu-Null-Verbindung zwischen einigen Entitäten.

Obwohl ich die Tabellen der Datenbank und die Beziehung zwischen ihnen untersucht habe, habe ich nicht herausgefunden, wie one-to-zero-one Relation in der Datenbank implementiert wurde.

Für weitere Informationen füge ich einige Screenshots meines Datenbankdiagramms und der Eigenschaft seiner Beziehung und der entsprechenden Entitäten in der edmx-Datei hinzu:

    
Mostafa 04.10.2011, 06:45
quelle

2 Antworten

25

Die Beziehung 1-0.1 in Ihrer Datenbank ist direkt sichtbar. Es wird zwischen Course- und OnlineCourse-Tabellen erstellt, wobei Kurs in Relation (1) ist und OnlineCourse abhängig von FK ist, das auf CourseID konfiguriert ist. FK ist auch PK des OnlineCourse = es muss einmalig sein und deswegen ist es 0..1.

Die Datenbank "always" verwendet 1 - 0..1, da reales 1 - 1 nicht effektiv für die Dateneingabe verwendet werden kann. 1 - 1 bedeutet, dass links nach rechts eingefügt werden muss, aber rechts nach links eingefügt werden muss = nicht möglich. Deshalb wird 1 - 0..1 verwendet, wobei left das Prinzipal ist und rechts davor und rechts davon abhängig ist und nach links eingefügt werden muss.

    
Ladislav Mrnka 04.10.2011, 08:09
quelle
0

Wenn die Datenbanktabellen bereits mit einer 1: 1-Beziehung (oder einer 1: 0-1) entworfen wurden, wird EF damit gut arbeiten, obwohl es den Namen der Kindtabelle pluraliert (wenn Sie es pluralisieren lassen) .

Der grundlegende Ansatz besteht darin, einen Fremdschlüssel zu erstellen (als ob Sie eine 1: Viele-Beziehung erstellen würden) und dann einen eindeutigen Index für das Fremdschlüsselfeld anzugeben. Wollen Sie das erreichen?

Dies könnte auch helfen: Entwerfen 1: 1 und 1: m Beziehungen in SQL Server .

Nebenbei bemerkt, 1-1-Beziehungen sind oft nicht notwendig und / oder ein Symptom eines Datenbankentwurfs, der überdacht werden muss. Es klingt jedoch so, als ob du das Design geerbt hättest ... ich weiß alles darüber!

    
Graham Charles 04.10.2011 06:57
quelle