sql >> Database teknologi >  >> RDS >> Mysql

Stærke vs svage enheder MYSQL

Som du ved, er Weak Entity en tabel, der ikke har en primær nøgle men den primære nøgle i et svagt enhedssæt er dannet af primærnøglen for det stærke enhedssæt, som det svage enhedssæt er eksistensafhængig af, plus det svage enhedssæts diskriminator.

Forholdet mellem svag enhed og stærk enhedssæt kaldes Identificerende Relation. I eksemplet nævnt i ovenstående billede er lånebetaling det identificerende forhold for betalingsenheden. Et svagt entitetssæt er repræsenteret ved en dobbelt omridset boks og en tilsvarende identificerende relation med en dobbelt omridset diamant som vist i figuren. Her angiver dobbelte linjer den samlede deltagelse af en svag enhed i en stærk enhed, det betyder, at hver betaling skal relateres via lån-betaling til en eller anden konto. Pilen fra lån-indbetaling til lån angiver, at hver betaling er for et enkelt lån. Diskriminatoren for et svagt enhedssæt er understreget med stiplede linjer i stedet for ubrudt linje.

Lad os overveje et andet scenarie, hvor vi ønsker at gemme oplysninger om medarbejdere og deres pårørende. Hver medarbejder kan have nul til n antal pårørende. Hver pårørende har et id-nummer og navn.

Lad os nu overveje følgende database:

Der er tre medarbejdere med E# som henholdsvis 1, 2 og 3.

Nu, i tilfælde af afhængigt, kan enheds-id ikke fungere som primær nøgle, fordi det ikke er unikt.

Afhængig er således et svagt enhedssæt med id som diskriminator. Den har en total deltagelse med forholdet "har", fordi ingen afhængige kan eksistere uden medarbejderne (virksomheden er optaget af medarbejdere).

Der er to tabeller, der skal oprettes over e-r-diagrammet. Disse er medarbejdere med E# som enkelt kolonne, der fungerer som primær nøgle. Den anden tabel vil være af Dependent med E#, id og navnekolonner, hvor primærnøgle er kombinationen af ​​(E# og id).



  1. VÆLG række efter DATEPART()

  2. MySQL-forespørgsel tager over 6 sekunder

  3. Brugerfiltreret søgning i django

  4. da jeg brugte find_by_sql alias, blev jeg forvirret