Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 24. 9. 2012, 19:01:15 · Upravil/a: Anonymní
Dobrý den, poradil by mi někdo, v čem se liší asociace 1:1 a 1:N (případně N:1)?
Napřiklad pokud mám seznam měst a v další tabulce seznam státu, tak sloupec state_id je vazba 1:1, nebo 1:N? |
||
Joker Profil |
Anonymní:
V tom, kolik prvků může být na každé straně vazby. 1:1 - K jednomu prvku na jedné straně se přiřadí vždy právě jeden prvek na druhé straně. Příkladem by mohla být třeba osoba a účet v aplikaci (pokud by jedna osoba mohla mít jen jeden uživatelský účet a přitom jeden účet příslušel právě jedné osobě). Obvykle se realizuje tak, že se údaje spojí do jednoho záznamu. 1:N - K jednomu prvku na jedné straně přísluší jeden nebo více prvků na druhé straně. Příkladem může být třeba vztah Uživatel - Příspěvek: Autorem příspěvku je vždy právě jeden uživatel, ale jeden uživatel může napsat víc příspěvků. N:1 - To samé jako 1:N M:N - K jednomu nebo více prvkům na jedné straně přísluší jeden nebo více prvků na druhé. Třeba na této diskusi by to mohl být vztah Moderátor - Kategorie: Jedna kategorie může mít více moderátorů a zároveň jeden moderátor může moderovat více než jednu kategorii. Někdy není typ vazby vidět na první pohled a někdy může dokonce v reálném životě stejná vazba být realizovaná v různých aplikacích různými druhy vazeb. Třeba vztah Osoba - Adresa (trvalé bydliště). Jedna osoba má právě jedno trvalé bydliště a přitom na jedné adrese může bydlet víc lidí. Takže N:1. Osoba ale může trvalé bydliště změnit. Pokud tedy aplikace má ukládat i historické údaje, je z toho vazba M:N. Dodatek: „Napřiklad pokud mám seznam měst a v další tabulce seznam státu, tak sloupec state_id je vazba 1:1, nebo 1:N?“ Jedno město patří do jednoho státu (sice de facto existují města rozložená ve více státech, třeba Český Těšín a Polský Těšín, ale obvykle se to bere jako dvě města) a v jednom státě může být více měst. Takže Město - Stát je N:1 |
||
Anonymní Profil * |
#3 · Zasláno: 24. 9. 2012, 19:25:54
Mockrát děkuji
|
||
Časová prodleva: 12 let
|
0