Hvad er forskellen mellem 1: M og 1: N-relationer i en relationsdatabase?


Svar 1:

SQL-relationsdatabaser understøtter to hovedrelationsmodeller.

  • 1: M En-til-mange datamodel1: 1 En-til-en datamodel

En til mange betyder, at hver række i tabel A angår nul eller flere rækker i tabel B. For eksempel har PERSON-tabellen nogle PHONE_NUMBERS i en anden tabel, men nogle PERSON har muligvis ikke nogen telefonnummerrække. PHONE_NUMBERS-tabellen har UDENlandske nøgler, der peger på PERSON.

- Find alle mennesker og deres telefonnumre. VÆLG * FRA PERSON JOIN PHONE_NUMBERS USING (PERSON_ID);

En til én betyder hver række i tabel A angår nul eller en række i en referencetabel B. F.eks. Har PERSON-tabellen et ADDRESS-felt, og STATEN matcher en referencetabel over tilstande i landet. PERSON-tabellen har UDENlandske nøgler, der peger STATE til tabellen STATE_CODES.

- Find alle mennesker og vis det fulde statsnavn, hvor de bor. VÆLG P.PERSON_ID, P.HOUSE_NUMBER, P.STREET, P.CITY, S.STATE_NAME FRA PERSON AS P JOIN STATE_CODES AS S ON (PERSON.STATE = STATE_ID);

Nul rækker og NULL-værdien

En udenlandsk nøglekolonne kan være NUL .. Dette betyder, at feltet endnu ikke er kendt. F.eks. Er STATE-kolonnen ovenfor NULL, indtil nogen angiver personens adresse.

PS

Jeg aner ikke, hvad 1: N betyder.


Svar 2:

1: M og 1: N er simpelthen alternativ notation for en konventionel 1 til mange-forbindelse mellem to tabeller i en relationsdatabase. Du kan også se denne forholdstype skrevet som M: 1 eller N: 1.

Et forhold til én mellem to tabeller benævnes 1: 1. Tilsvarende beskriver M: N forholdet mellem mange og mange.


Svar 3:

1: M og 1: N er simpelthen alternativ notation for en konventionel 1 til mange-forbindelse mellem to tabeller i en relationsdatabase. Du kan også se denne forholdstype skrevet som M: 1 eller N: 1.

Et forhold til én mellem to tabeller benævnes 1: 1. Tilsvarende beskriver M: N forholdet mellem mange og mange.