Entity Relationships - Kann ein schwaches Unternehmen nehmen an einem ‚one to many‘ Beziehung als ‚eins‘

StackOverflow https://stackoverflow.com/questions/2464094

Frage

Mit der folgenden Entity-Relationship-Struktur Ich kämpfe zwischen den Darlehens- und ITEM Entitäten, wenn die Beziehung gültig ist, um herauszufinden?

Die schwache Entität KREDIT verwendet einen Teilschlüssel von ‚loan_dateLeant‘ und die Primärschlüssel von Kunden- und Artikel zu bilden KREDITE Primärschlüssel. Allerdings Darlehen hat eine ‚one to many‘ Beziehung mit ITEM als Darlehen kann aus mehr als einem Element bestehen. Aber sicherlich bedeutet dies, dass, wenn mehr als ein Element ausgeliehen wird, dann wird das Darlehen aufnehmen müssen zwei item_id Werte für einen Teil seiner Primärschlüssel?

alt text

War es hilfreich?

Lösung

Sie haben recht, die nicht gültig ist - man kann nicht eine n-Beziehung als bestimmendes Teil eines Primärschlüssel verwenden. Was Sie vielleicht sollten Sie stattdessen tut das Hinzufügen einer einzigartigen loan_id, dass Sie einen Teil Ihres Primärschlüssel anstelle der Einzelteile das Darlehen enthält machen; dann ein einziges Darlehen durch seine Kunden und Darlehen ID (oder Kunden, Datum und Darlehen ID) definiert ist.

Wenn das nicht funktioniert, macht date_leant ein Datetime-Feld und erhöht die Präzision auf, bis Sie nicht möglicherweise können (innerhalb der Grenzen des Systems) zwei Darlehen zur gleichen Zeit auftreten - wie ist es wahrscheinlich, dass ein einziger Kunde tätigt zwei separate Darlehen innerhalb von Millisekunden voneinander?

Beachten Sie dies nicht verhindern, dass das Darlehen Unternehmen von einem Teil in der Beziehung als „eines“ nehmen; es bedeutet nur, dass Sie nicht die schwache Einheit mit der „viele“ definieren können.

Andere Tipps

Eigentlich können Sie dies tun.

Denken Sie daran, wird der Primärschlüssel des Kredites hängt nur von der Tag + Kundenkennung. Solange es eine maximale Mächtigkeit auf der „1“ ist Beziehung „machen kann“ (das heißt, ein Darlehen nur 1-Kunde verwendet ist), Sie sind fein auf dem Primärschlüssel mit entliehen werden.

Die ITEM-Tabelle, wird stattdessen nehmen Sie die (einzige) Kennung des Darlehens (customerID + Datum) als Fremdschlüssel innerhalb ITEM. Der Primärschlüssel von Darlehen wird nicht von dieser Modellierung beeinflusst werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top