2 Stimmen

Was ist das Datenbankschema einer Eins-zu-Eins-Beziehung, die eine schwache Entitätsmenge involviert?

Hier ist mein Problem:

Ein "LoanRequest" wird bei Genehmigung zu einem "Loan".

Bildbeschreibung hier eingeben
Hier gibt es 2 Tabellen: LoanRequest & Loan

Der Schlüssel für "LoanRequest" ist

 {RequestDate, Borrower}

Da "Loan" eine schwache Entitätsmenge ist, sollte der Schlüssel für Loan {ApprovalDate, Borrower, RequestDate} sein, jedoch ist ein Schlüssel das, was den Rest der Attribute der Entität bestimmt. Also kann hier {RequestDate, Borrower} allein "Loan" bestimmen, warum sollte dann {ApprovalDate, Borrower, RequestDate} der Schlüssel sein?

Warum können wir auch nicht sagen, dass Loan ein LoanRequest "ist", da Loan tatsächlich eine genehmigte Kreditanfrage ist?
Bildbeschreibung hier eingeben

3voto

nvogel Punkte 24074

Es handelt sich vermutlich nicht um eine (obligatorische) 1-zu-1-Beziehung, da nicht alle Kreditanfragen auch genehmigte Kredite sind? Ich gehe davon aus, dass die Beziehung 1 - 0/1 ist.

Wenn es tatsächlich eine Geschäftsregel ist, dass ein Kreditnehmer pro Tag nur einen Kredit beantragen kann, dann scheint {Kreditnehmer, AnfrageDatum} ein Kandidatenschlüssel sowohl für einen Kredit als auch für einen genehmigten Kredit zu sein. Wenn {Kreditnehmer, AnfrageDatum} ein Kandidatenschlüssel ist, kann {Genehmigungsdatum, Kreditnehmer, AnfrageDatum} auch kein Schlüssel sein - Schlüssel müssen irreduzierbar sein.

Schreiben Sie die Tatsachen und die Geschäftsregeln auf, die Sie durch Ihr Datenmodell darstellen möchten. Es scheint, als ob Sie sich bereits vor der Klärung dessen, was das Diagramm zeigen soll, in den Beschränkungen eines ER-Diagramms verstricken.

2voto

Just Aguy Punkte 327

Du denkst zu viel nach und das wird dich normalerweise in die falsche Richtung führen.

  1. Ein Darlehen existiert nicht ohne ein Genehmigungsdatum. Also, wie können dir der Kreditnehmer und das Antragsdatum etwas über ein nicht existierendes Darlehen sagen? Guter Punkt für einen Schlüssel, findest du nicht?

  2. Ein Kreditantrag ist kein Kredit, es ist ein Antrag. Sie haben unterschiedliche Merkmale und dienen zwei verschiedenen Zwecken im Geschäft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X