Jaký je rozdíl mezi vztahy 1: M a 1: N v relační databázi?


Odpověď 1:

Relační databáze SQL podporují dva hlavní relační modely.

  • 1: M Datový model 1: 1 Datový model 1: 1

Jedna až mnoho znamená, že každý řádek v tabulce A se vztahuje k nule nebo více řádkům v tabulce B. Například tabulka PERSON obsahuje některé PHONE_NUMBERS v jiné tabulce, ale některé PERSON nemusí mít žádný řádek s telefonním číslem vůbec. Tabulka PHONE_NUMBERS má FOREIGN KEYS směřující na OSOBU.

- Najděte všechny lidi a jejich telefonní čísla. VYBRAT * OD POUŽITÍ PERSON JOIN PHONE_NUMBERS (PERSON_ID);

Jedna ku jedné znamená, že se každý řádek v tabulce A týká nuly nebo jednoho řádku v referenční tabulce B. Například tabulka PERSON má pole ADRESA a STÁT odpovídá referenční tabulce států v zemi. Tabulka PERSON má FOREIGN KEYS směřující STATE do tabulky STATE_CODES.

- Najděte všechny lidi a ukažte celé jméno státu, kde žijí. VYBRAJTE P.PERSON_ID, P.HOUSE_NUMBER, P.STREET, P.CITY, S.STATE_NAME OD PERSONU AS P JOIN STATE_CODES AS S ON (PERSON.STATE = STATE_ID);

Nulové řádky a NULL hodnota

Sloupec FOREIGN KEY one to one může být NULL .. To znamená, že pole je dosud neznámé. Například výše uvedený sloupec STATE je NULL, dokud někdo nenastaví jeho adresu.

PS

Nevím, co to znamená 1: N.


Odpověď 2:

1: M a 1: N jsou jednoduše alternativní notace pro konvenční vztah 1 k mnoha mezi dvěma tabulkami v relační databázi. Můžete také vidět tento typ vztahu psaný jako M: 1 nebo N: 1.

Vzájemný vztah mezi dvěma tabulkami se označuje jako 1: 1. Podobně M: N popisuje typ vztahu mnoho k mnoha.


Odpověď 3:

1: M a 1: N jsou jednoduše alternativní notace pro konvenční vztah 1 k mnoha mezi dvěma tabulkami v relační databázi. Můžete také vidět tento typ vztahu psaný jako M: 1 nebo N: 1.

Vzájemný vztah mezi dvěma tabulkami se označuje jako 1: 1. Podobně M: N popisuje typ vztahu mnoho k mnoha.